13.7 練習
基礎難度
226. Invert Binary Tree
巧用遞迴,你可以在五行內完成這道題。
題解
問題描述
給定一棵二元樹,請「鏡像反轉」這棵樹,也就是將左子樹與右子樹整體交換。
範例
輸入:
4
/ \
2 7
/ \ / \
1 3 6 9
輸出:
4
/ \
7 2
/ \ / \
9 6 3 1
解題思路:遞迴 or BFS
✅ 遞迴解法(最直覺)
-
對當前節點:
- 交換左子樹與右子樹
- 然後遞迴處理左右子樹
Python 程式碼:遞迴解法
class Solution:
def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
if not root:
return None
# 交換左右子樹
root.left, root.right = self.invertTree(root.right), self.invertTree(root.left)
return root