劍指Offer系列32 2 從上到下列印二叉樹2

2021-10-06 21:25:08 字數 1152 閱讀 6217

從上到下按層列印二叉樹,同一層的節點按從左到右的順序列印,每一層列印到一行。

例如:給定二叉樹: [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...