題目
給定一個二叉樹,找出其最大深度。
二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。
說明: 葉子節點是指沒有子節點的節點。
示例:
給定二叉樹 [3,9,20,null,null,15,7],
3
/
9 20
/
15 7
返回它的最大深度 3 。
思路
BFS廣度優先搜索,使用雙端隊列deque(因為性能比另外兩種Queue好得多),在大循環內對二叉樹的每個層做一次遍歷,range(len(queue))使只遍歷當前的層,每次大循環ans加1。由于每個節點僅訪問一次,所以時間復雜度O(n)
代碼
import
collections
class
Solution
:
def
maxDepth
(
self
,
root
:
TreeNode
)
-
>
int
:
if
not
root
:
return
0
queue
=
collections
.
deque
(
)
queue
.
append
(
root
)
ans
=
0
while
queue
:
ans
+=
1
for
_
in
range
(
len
(
queue
)
)
:
node
=
queue
.
popleft
(
)
if
node
.
left
:
queue
.
append
(
node
.
left
)
if
node
.
right
:
queue
.
append
(
node
.
right
)
return
ans
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
