從上到下按層列印二叉樹,同一層的節點按從左到右的順序列印,每一層列印到一行。
例如:給定二叉樹: [3,9,20,null,null,15,7],3/
9 20
/ 15 7
返回其層次遍歷結果:
[[3],
[9,20],
[15,7]
]python
# definition for a binary tree node.
# class treenode:
# def __init__(self, x):
# self.val = x
# self.left = none
# self.right = none
# 思想:
# 採用bfs,佇列實現,注意返回列表維度
# 複雜度:
# o(n)
class
solution
:def
levelorder
(self, root: treenode)
-> list[list[
int]]:
ifnot root:
return
res, q =
, collections.deque(
)# 此處採用雙端佇列,出入隊複雜度由o(n)降為o(1)
# 根入隊
while q:
tmp=
for _ in
range
(len
(q))
: node = q.popleft(
)# 壓入子列表
# 左子樹入隊
# 右子樹入隊
# 壓入結果列表
return res
c++/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
res.
push_back
(tmp);}
return res;}}
;
Python劍指offer 分行從上到下列印二叉樹
從上到下按層列印二叉樹,同一層的節點按照從左到右 的順序列印,每一層列印到第一行,例如本題中上乙個問題的二叉樹 輸出形式會是 86 10 5 7 9 11 這道題和前面一道題十分類似,也可以用乙個佇列來儲存要列印的節點。為了把二叉樹的每一行單獨列印到一行裡,我們需要兩個變數 乙個變數表示當前層中還沒...
劍指Offer系列32 1 從上到下列印二叉樹
從上到下列印出二叉樹的每個節點,同一層的節點按照從左到右的順序列印。例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回 3,9,20,15,7 python definition for a binary tree node.class treenode de...
劍指Offer系列32 3 從上到下列印二叉樹3
請實現乙個函式按照之字形順序列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右到左的順序列印,第三行再按照從左到右的順序列印,其他行以此類推。例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回其層次遍歷結果 3 20,9 15,7 python def...