[leetcode] Flatten Binary Tree to Linked List
题目(Tree DFS)
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
题解:
比较有意思的一条tree的题
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; } } }