二叉樹的運算一般用常規的遞迴方法,**簡潔。
class solution:
def treedepth(self,proot):
if not proot:
return 0
count=max(self.treedepth(proot.left),self.treedepth(proot.right))+1
return count
非遞迴方法:
class solution:
def levelorder(self,root):
res=
count =0
if not root:
return count
p=while len(q) != 0:
# 使用列表儲存同層節點
tmp =
# 記錄同層節點的個數
length = len(q)
for i in range(length):
# 將同層節點依次出隊
r = q.pop(0)
if r.left is not none:
# 非空左孩子入隊
if r.right is not none:
# 非空右孩子入隊
if tmp:
count += 1 # 統計層數
return count
def treedepth(self, proot):
# write code here
# 使用層次遍歷
# 當樹為空直接返回0
if proot is none:
return 0
count = self.levelorder(proot)
return count
劍指offer 二叉樹的深度
輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。如果二叉樹只有根節點那麼深度就是1,如果只有左子樹,那麼就是左子樹的深度加1就是整棵二叉樹的深度 如果只有右子樹,那麼二叉樹的深度就是右子樹的深度加1 如果既有左子樹又有右子樹,那...
劍指offer 二叉樹的深度
輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。思路 面對樹形結構,我們常用的演算法就是遞迴,根樹的每一塊子樹都可以看成一棵小的完整的樹,這位我們解題提供了很好的思路。如果一開始傳入的就是空的那麼深度就是0,如果不是0,那麼這顆...
劍指offer 二叉樹的深度
class solution def treedepth self,proot write code here if proot none return 0 return max 1 self.treedepth proot.left 1 self.treedepth proot.right 非常簡...