首页 > 代码库 > [leetcode] Flatten Binary Tree to Linked List

[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

click to show hints.

 

题解:

比较有意思的一条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;        }    }}

 

[leetcode] Flatten Binary Tree to Linked List