关于leetcode上的一道题# JobHunting - 待字闺中
e*i
1 楼
Hi leetcode上我有道题看不明白,求教各位大神。
是关于flatten binary tree to linkedlist那道。
我看到一个答案。
public class Solution {
03 public void flatten(TreeNode root) {
04 if(root==null)
05 return;
06
07 TreeNode curr=null;
08 Stack trees=new Stack();
09 trees.add(root);
10 while(!trees.empty())
11 {
12 TreeNode parent=trees.pop();
13
14 if(parent.right!=null)
15 {
16 trees.push(parent.right);
17 }
18
19 if(parent.left!=null)
20 {
21 trees.push(parent.left);
22 }
23 parent.left=null;
24 parent.right=null;
25 if(root==parent)
26 {
27 curr=parent;
28 }
29 else
30 {
31 curr.right=parent;
32 curr=curr.right;
33 }
34 }
35
36 }
37 }
这个答案是能通过测试的。
可是我看不懂的地方是除了在12行,将stack里的root节点赋值给parent意外,自始至
终root节点都没有改变过。为什么root就被flatten了呢?
我太水了,真心看不懂
是关于flatten binary tree to linkedlist那道。
我看到一个答案。
public class Solution {
03 public void flatten(TreeNode root) {
04 if(root==null)
05 return;
06
07 TreeNode curr=null;
08 Stack
09 trees.add(root);
10 while(!trees.empty())
11 {
12 TreeNode parent=trees.pop();
13
14 if(parent.right!=null)
15 {
16 trees.push(parent.right);
17 }
18
19 if(parent.left!=null)
20 {
21 trees.push(parent.left);
22 }
23 parent.left=null;
24 parent.right=null;
25 if(root==parent)
26 {
27 curr=parent;
28 }
29 else
30 {
31 curr.right=parent;
32 curr=curr.right;
33 }
34 }
35
36 }
37 }
这个答案是能通过测试的。
可是我看不懂的地方是除了在12行,将stack里的root节点赋值给parent意外,自始至
终root节点都没有改变过。为什么root就被flatten了呢?
我太水了,真心看不懂