LeetCode 114. Flatten Binary Tree to Linked List

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 114. Flatten Binary Tree to Linked List相关的知识,希望对你有一定的参考价值。

 1 class Solution {
 2 public:
 3     void flatten(TreeNode* root) {
 4         if(!root) return;
 5         flatten(root->left);
 6         flatten(root->right);
 7         
 8         TreeNode* right = root->right;
 9         root->right = root->left;
10         root->left = NULL;
11         while(root->right){
12             root = root->right;
13         }
14         root->left = NULL;
15         root->right = right;
16     }
17 };

原本以为最后flatten的树必须是按顺序按小到大的,这样一来

          3

   1            4

2     5

这棵树左右子树flatten后左边是1-2-5,右边是4,4还要插入左子树。后来发现想多了,只需要所有节点均无左子树即可,但是还是要按照一定顺序的。

题意仍不失很明确,留坑。

题目要求的顺序是前序,即root - root->left - root->right。

将上面这棵树输入:

Your input
[3,1,4,2,5]
Your answer
[3,null,1,null,2,null,5,null,4]
Expected answer
[3,null,1,null,2,null,5,null,4]   即确实是前序。


还有其他算法,未看,留坑。

以上是关于LeetCode 114. Flatten Binary Tree to Linked List的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 114. Flatten Binary Tree to Linked List

leetcode--114. Flatten Binary Tree to Linked List

LeetCode 114. Flatten Binary Tree to Linked List

Leetcode 114, Flatten Binary Tree to Linked List

LeetCode-114-Flatten Binary Tree to Linked List

LeetCode OJ 114. Flatten Binary Tree to Linked List