➣ Reading Time: 4 minutes

題目出處

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

 ⭐Python leetcode 相關文章整理⭐:  
⭐Leetcode 解題紀錄⭐:難度Tag
⭐面試最經典 Top 75 題⭐:
1.【Leetcode】python - [1] Two Sum 兩數之和 個人手繪解法筆記 (只講解法重點, 內含範例程式碼)#Easy#Array #HashTable
3.【Leetcode】python - [3] Longest Substring Without Repeating Characters 個人手繪解法筆記 (只講解法重點, 內含範例程式碼) #Medium#HashTable #TwoPointers #String #SlidingWindow
5.【Leetcode】python - [5] Longest Palindromic Substring 個人手繪解法筆記 (只講解法重點, 內含範例程式碼) #Medium#String #DP
11.【Leetcode】python - [11] Container With Most Water 個人手繪解法筆記 (只講解法重點, 內含範例程式碼) #Medium#Array #TwoPointers
15.【Leetcode】python - [15] 3Sum 三數之和 個人手繪解法筆記 (只講解法重點, 內含範例程式碼) #Medium#Array #TwoPointers
48.【Leetcode】python - [48] Rotate Image 旋轉矩陣 個人手繪解法筆記與解題思考建議 (只講解法重點, 內含範例程式碼)#Medium (但我覺得很難)#Array
104.【Leetcode】python - [104] Maximum Depth of Binary Tree 個人手繪解法筆記 (只講解法重點, 內含範例程式碼) #Easy#Tree #DFS #Recursion
⭐Leetcode 小技巧⭐:
1.【Python】python 測試程式 – 利用 doctest 測試 python testcase 的優雅寫法,適用於 leetcode (doctest in function,搭配 function 的用法)
2.【Leetcode】python – 利用 doctest 測試 leetcode python testcase 的優雅寫法 (doctest in class,搭配 class 的用法)