LeetCode – Flatten Binary Tree to Linked List
Given a binary tree, flatten it to a linked list in-place.
For example,
Given
1 / \ 2 5 / \ \ 3 4 6
The flattened tree should look like:
1 \ 2 \ 3 \ 4 \ 5 \ 6
Java Solution
Go down the tree to the left, when the right child is not null, push the right child to the stack.
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public void flatten(TreeNode root) { Stack<TreeNode> stack = new Stack<TreeNode>(); TreeNode p = root; while(p != null || !stack.empty()){ if(p.right != null){ stack.push(p.right); } if(p.left != null){ p.right = p.left; p.left = null; }else if(!stack.empty()){ TreeNode temp = stack.pop(); p.right=temp; } p = p.right; } } } |
<pre><code> String foo = "bar"; </code></pre>
-
Chaitanya GOPIREDDY
-
Loki Smirenski
-
maninblack2013
-
Bharath Chandra
-
Donte
-
Bharath Chandra
-
Matias SM
-
Ashish Pai
-
Almas Daumov
-
RoroZoro
-
Noobaka
-
Noobaka
-
hdante
-
Lambda Pool
-
rampartmovie
-
rampartmovie
-
Diego Cedrim
-
Kartrace