LeetCode #100 Same Tree - 刷題之旅
1 題目描述
檢查兩棵樹是否相同
2 解法
這題跟101-Symmetric Tree的解法很像,所以很簡單:
一樣套用 Recursion 的思維,我們先將大問題變成小問題
- 大問題:知道兩個樹是否相同
- 小問題:讓我們相信遞歸並假設我們已經透過遞歸給出了根的左子樹和右子樹是對稱的。
- 大小關係式:
(p.val == q.val) and (p.left, q.left) and (p.right, q.left)
- 當前的值相同 and 左子樹相同 and 右子樹相同
- 最小的問題:當 p 和 q 都觸底的時候,是如果都是None就代表True,但是當其中一邊有值,另一邊沒有值,就不相同了。
1 | def isSameTree(self, p: Optional[TreeNode], q: Optional[TreeNode]) -> bool: |
3 總結
這題很簡單,跟檢查兩棵樹是否對稱有一樣的解法,所以四分鐘就解完通過了!果然武器還是要備好。
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Shannon's Blog 🐟 技術 | 生活 | 旅行! 如果你覺得我的文章有幫助,希望你可以到我的 github 給我一個 star ⭐️ Shannon Blog Repo
評論