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
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }
root.left = null;