求二叉樹的最大深度的三種方法

2021-10-04 06:15:00 字數 1255 閱讀 4452

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時程式結束。輸入描述 迴圈輸入多棵擴充套件二叉樹的先序遍歷序列,每棵樹佔一行,以回車結束,每棵二叉樹中結點之間以空格隔開輸出描述 輸出各二叉樹的...