題目:
輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點(含根、葉節點)形成樹的一條路徑,最長路徑的長度為樹的深度。
解法:
方法一:遞迴法
"""# 當 root 為空,說明已越過葉節點,因此返回 深度 00
ifnot root:
return
0return
max(self.maxdepth(root.left)
,self.maxdepth(root.right))+
1方法二:層序遍歷
每遍歷一層,則計數器 +1+1 ,直到遍歷完成,則可得到樹的深度。
class
solution
(object):
defmaxdepth
(self, root)
:"""
:type root: treenode
:rtype: int
"""ifnot root:
return
0# queue tmp裡直接存放的是結點treenode
queue=
[root]
dep=
0while queue:
# tmp= 每次增加左右結點前要清空
tmp=
for node in queue:
# 如果沒有左右結點就不新增。tmp裡就為空複製給queue也為空。就會退出while迴圈
if node.left:
if node.right:
dep+=
1 queue=tmp
return dep
面試題55 I 二叉樹的深度
題目 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度 方法 遞迴左右子樹 遞迴遍歷,取左右子樹的最大深度,加當前根結點的 1 個深度,就是結果 class solution intdfs treenode root in...
面試題55 I 二叉樹的深度
題目 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回它的最大深度 3 節點總數 10000 解題思路 1.如果根節點為空,則返回...
劍指offer 面試題 55 二叉樹的深度
輸入一棵二叉樹的根結點,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。樣例輸入 二叉樹 8,12,2,null,null,6,4,null,null,null,null 如下圖所示 8 12 2 6 4 輸出 3 definition for...