LeetCode每日一題: 翻轉二叉樹(No.226)

胖宅老鼠發表於2019-04-10

題目:翻轉二叉樹


 計算給定二叉樹的所有左葉子之和。
複製程式碼

示例:


輸入:

     4
   /   \
  2     7
 / \   / \
1   3 6   9
    
輸出:
     4
   /   \
  7     2
 / \   / \
9   6 3   1
複製程式碼

思考:


這道題採用遞迴。
將root的左節點與右節點交換,再遞迴交換左節點的左節點和右節點,右節點的左節點和右節點。
複製程式碼

實現:


class Solution {
    public TreeNode invertTree(TreeNode root) {
        if (root == null) {
            return null;
        }
        TreeNode temp = root.left;
        root.left = root.right;
        root.right = temp;
        invertTree(root.left);
        invertTree(root.right);
        return root;
    }
}複製程式碼

相關文章