題目:翻轉二叉樹
計算給定二叉樹的所有左葉子之和。
複製程式碼
示例:
輸入:
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;
}
}複製程式碼