class
solution
:def
treedepth
(self, p)
:# write code here
# 終止條件:
ifnot p:
return
0return
max(self.treedepth(p.left)
, self.treedepth(p.right))+
1
class
solution
:def
treedepth
(self, p)
:# write code here
ifnot p:
return
0 queue =
count =
0while queue:
length =
len(queue)
# 將當前的佇列裡的值全部pop,然後把pop出來所有結點的子結點加入佇列
# 及在每次迴圈中,佇列中存放的是同一層的所有結點
for i in
range
(length)
: head = queue.pop(0)
if head.right:
if head.left:
count +=
1return count
class
solution
:def
treedepth
(self, p)
:# write code here
ifnot p:
return
0 stack =
(p,1))
cur_max =
0 cur_len =
0while stack:
head,cur_len = stack.pop(
)if head.left:
(head.left,cur_len+1)
)if head.right:
(head.right,cur_len+1)
)ifnot head.left and
not head.right:
cur_max =
max(cur_max, cur_len)
return cur_max
求二叉樹的最大深度
二叉樹的題目,大部分都能用分治的思路來解題。求二叉樹的最大深度,就是求左 右子數的最大深度 1即可。給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的距離。樣例給出一棵如下的二叉樹 1 2 3 4 5這個二叉樹的最大深度為3.definition of treenode publi...
求二叉樹的最大深度
definition for a binary tree node.struct treenode 深度優先 遞迴版 class solution 深度優先 用棧的迴圈版 class solution p s.top first 若左邊無路,就預備右拐。右拐之前,記錄右拐點的基本資訊 deep s....
二叉樹(三)求二叉樹的深度
採用先序法建立一棵二叉樹,設計求該二叉樹的深度,二叉樹的資料域型別為字元型,擴充套件二叉樹的葉子結點用 表示,要求可以求多棵二叉樹的深度,當二叉樹的深度為0時程式結束。輸入描述 迴圈輸入多棵擴充套件二叉樹的先序遍歷序列,每棵樹佔一行,以回車結束,每棵二叉樹中結點之間以空格隔開輸出描述 輸出各二叉樹的...