1. 程式人生 > >[leetcode] 114. 二叉樹展開為連結串列

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