內容目錄
題目出處
https://leetcode.com/problems/maximum-depth-of-binary-tree/
難度
Easy
題目分類
Tree, DFS, Recursion
個人手繪解法筆記 (解法重點)
這題就是簡單考樹的遍歷,
用 while 來一層一層刷出深度。
從 list 翻譯樹的長相
- 示意圖: (我們就是照著紅色箭頭方向一個個節點看左右的。)
基本的確認,我們先確認有沒有這棵樹
總是會有一些要多考慮的事情… 沒有樹的話我們要先處理
(很討厭這種整個算法幾乎都寫對,結果錯「最簡單現象」的感覺XDD)
一層層的遍歷,每個節點左右都看一下
每一層遍歷各節點的左右,這邊可以抓一個感覺,
樹的成長 (level),大概是照著 1 -> 2 -> 4 -> 8 -> 16
這樣的數值在快速變化的。
個人範例程式碼
class Solution:
def maxDepth(self, root: TreeNode) -> int:
depth = 0
if root:
level = [root]
else:
level = []
while(level):
depth += 1
next_level = []
for ele in level:
if ele.left:
next_level.append(ele.left)
if ele.right:
next_level.append(ele.right)
level = next_level
return depth
Reference
https://leetcode.com/problems/maximum-depth-of-binary-tree/discuss/34345/Python-BFS-solution
★留個言吧!內容有誤或想要補充也歡迎與我討論!