[leetcode] 114. 二叉树展开为链表

114. 二叉树展开为链表

这个题描述不清啊

一开始看描述每太明白题意,对着给出的样例做的

实际上就是:

  1. 将右子树接到左子树的最右边的叶子节点上
  2. 将左子树接到root的右儿子上
  3. 把root的左儿子置空
class Solution {
    public void flatten(TreeNode root) {
        if (root==null) return;

        TreeNode left=root.left,right=root.right;
        if (left!=null){
            // 将左子树接到root的右边
            root.right = left;
            // 将右子树接到左子树的最右边的叶子节点上
            while (left.right!=null){
                left = left.right;
            }
            left.right = right;
            // 注意将左子树置空
            root.left = null;
        }
        flatten(root.right);
    }
}
posted @ 2018-11-06 21:44  ACBingo  阅读(383)  评论(0编辑  收藏  举报