1 題目描述


要把左右子樹對調,outside替換,inside也是替換。

2 解法

  1. 大問題:要把一個樹的左右子樹對調
  2. 小問題:讓我們相信遞歸並假設我們已經透過遞歸給出了根的左子樹和右子樹對調
  3. 最小的問題:當 root 是 None 時,回傳 None。

假設就是我們呼叫 invertTree(root.left)invertTree(root.right) 會回傳對調後的左右子樹,我們只要把左右子樹對調就可以了。

1
2
3
4
5
6
7
class Solution: 
def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
if root is None:
return None

root.left, root.right = self.invertTree(root.right), self.invertTree(root.left)
return root

3 總結

大概花了20分,這題不難,但是我用了很蠢的方式寫,後來得到提示,就是直接假設左右子樹已經對調好了,就可以直接設定 root.left=已經對調好的右子樹root.right=已經對調好的左子樹,這樣就可以了。