【Leetcode】python - [104] Maximum Depth of Binary Tree 個人手繪解法筆記 (內含範例程式碼)

題目出處

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

Licensed under CC BY-NC-SA 4.0