例如:
給定二叉樹: [3,9,20,null,null,15,7],
返回:[3,9,20,15,7]
class
solution
:def
levelorder
(self, root: treenode)
-> list[
int]:if
not root:
return
queue =
[root]
res =
while queue:
node = queue.pop(0)
if node.left:
if node.right:
return res
例如:
給定二叉樹: [3,9,20,null,null,15,7],
返回其層次遍歷結果:
[[3],
[9,20],
[15,7]
]步驟:主要步驟與上一題相似,唯一不同是需要遍歷整個queue來實現將同一層級的節點放到乙個list中。遍歷queue的range長度,然後將queue的節點出隊,再將node節點的子節點加入queue中,因為前邊遍歷的是len(queue)是固定的,不會隨著入隊而變化。
**
class
solution
:def
levelorder
(self, root: treenode)
-> list[list[
int]]:
ifnot root:
return
queue =
[root]
res =
while queue:
tmp =
for _ in
range
(len
(queue)):
node = queue.pop(0)
if node.left:
if node.right:
return res
從上到下列印二叉樹
原理是二叉樹的層次遍歷 可以用乙個佇列輔助,先將二叉樹根節點入隊,然後出隊,將該節點存入vector中,之後判斷根節點的左子樹和右子樹是否為空,若不為空,依次入隊。然後出隊,再訪問出隊的結點是否有左右子樹,以此類推。核心 vectorprintfromtoptobottom treenode roo...
從上到下列印二叉樹
例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回 3,9,20,15,7 2.1 思路分析 題目要求的二叉樹從上到下列印 即按層列印 又稱為二叉樹的廣度優先搜尋 bfs bfs通常借助佇列的先入先出特性來實現。2.2 演算法流程 特例處理 當樹的根結點為空,...
從上到下列印二叉樹
從上到下列印出二叉樹的每個節點,同一層的節點按照從左到右的順序列印。例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回 3,9,20,15,7 解題思路 演算法流程 特例處理 當樹的根節點為空,則直接返回空列表 初始化 列印結果列表 res 包含根節點的佇列 q...