題幹:
給定乙個二叉樹,找出其最大深度。
二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。
說明: 葉子節點是指沒有子節點的節點。
示例:給定二叉樹 [3,9,20,null,null,15,7],
3 / \
9 20
/ \
15 7
當時考研王道書上的例題,求最大深度,首先想到的就是左右遞迴,求出最後最長的子樹
這就是典型的深度優先遍歷,也是我心裡一直記住的辦法,本來**實現也不長,官方題解也是這個辦法
說到深度優先遍歷,當然廣度優先遍歷的方法也可以解決這個問題,但是寫完**之後,我越發覺得這就是層序遍歷
//深度優先遍歷
public int maxdepth(treenode root)
//廣度優先遍歷
public int maxdepth1(treenode root)
//每迴圈完一層,層數+1
ans++;
}return ans;
}
深度優先遍歷沒得說,就是以後注意語法的靈活運用,用最簡練的**達到預期的功能廣度優先遍歷中用到了泛型,其實我自己對於泛型的理解是不到位的,因為自己在敲**中很少使用
只知道是為了型別安全和優化效能,並且消除了強制轉換的風險,以後真正理解了在做一篇文章解釋吧
而且還用到了佇列的兩種方法,offer()和poll(),其實同時作為新增和刪除方法,還是有些區別的
在佇列元素為空的情況下,remove() 方法會丟擲nosuchelementexception異常,poll() 方法只會返回 null
在容量已滿的情況下,add() 方法會丟擲illegalstateexception異常,offer() 方法只會返回 false
LeetCode104二叉樹最大深度
給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回它的最大深度 3 definition for a binary tree node....
LeetCode 104 二叉樹的最大深度
題目描述 給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回它的最大深度 3 解題思路 此題可以用層次遍歷來解,每層設定乙個count值來...
leetcode 104 二叉樹的最大深度
給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回它的最大深度 3 definition for a binary tree node....