• 2.12

  • 1.29

    • 先到最左下角,然后拼接左右子树,没看见递归的返回值忘思路了
  • 1.17

    • 自顶向下,后序遍历,第二遍 Gemini 醍醐灌顶
  • 11.12

    • 还是递归从左下角开始,分割左右子树 .左子树置null
    • cur记录尾部,第一次没想出来

        1
       / \
 (左) 234   (右) 56
class Solution {
    public void flatten(TreeNode root) {
        if(root==null) return;
        flatten(root.left);
        flatten(root.right);
        TreeNode temp = root.right;
        root.right = root.left;
        root.left = null;
        TreeNode cur = root;
        while(cur.right!=null){
            cur = cur.right;
        }
        cur.right = temp;
    }
}
  • 先递归展开左右子树,暂存右子树,拼接过去,over