[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);
    }
}

猜你喜欢

转载自www.cnblogs.com/acbingo/p/9919058.html