leetcode104,
根據官方的方法有遞迴法和廣度優先遍歷;
遞迴法,如圖所示,
廣度優先遍歷,設計數器每次讀取一層(類似於二叉樹的層次遍歷)
#遞迴法
class
solution
:def
maxdepth
(self, root)
:if root is
none
:return
0else
: left_height = self.maxdepth(root.left)
right_height = self.maxdepth(root.right)
return
max(left_height, right_height)+1
#廣度優先
class
solution
:def
maxdepth
(self, root)
:if root is
none
:return
0 queue =
[root]
ans=
0while queue:
size =
len(queue)
while size>0:
node = queue.pop(0)
if node.left is
notnone
:if node.right is
notnone
: size-=
1 ans+=
1return ans
二叉樹的深度 二叉樹的深度 二叉樹最大寬度
題目 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如 給定二叉樹 3,9,20,null,null,15,7 返回它的最大深度 3 根節點加上左右子樹的最大深度就是樹的最大深度。如下 class solution ...
二叉樹的最大深度
1.問題描述 給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的距離。樣例給出一棵如下的二叉樹 1 2 3 4 5這個二叉樹的最大深度為3.2.解題思路 如果二叉樹為空,則深度為0 如果不為空,運用遞迴,分別求其左子樹和右子樹的深度,取最大的再加1,因為根節點深度是1,要加進去。3...
二叉樹的最大深度
問題描述 給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的距離。樣例 給出一棵如下的二叉樹 1 2 3 4 5這個二叉樹的最大深度為3.實現思路 要求二叉樹的最大深度,首先判斷二叉樹是否為空,若為空,則深度為0。如果不為空,分別求左子樹的深度和右子樹的深度,取最大的那乙個加1,即...