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
1 public class Solution { 2 public void flatten(TreeNode root) { 3 if(root==null) return; 4 if(root.left!=null){ 5 TreeNode left = root.left; 6 TreeNode right = root.right; 7 root.left = null; 8 root.right = left; 9 TreeNode p = left; 10 while(p.right!=null){ 11 p = p.right; 12 } 13 p.right = right; 14 } 15 flatten(root.right); 16 } 17 }
Flatten Binary Tree to Linked List
原文:http://www.cnblogs.com/krunning/p/3555191.html