題目描述:
給你乙個二叉樹,請你返回其按 層序遍歷 得到的節點值。 (即逐層地,從左到右訪問所有節點)。
示例:二叉樹:[3,9,20,null,null,15,7],
3/ \
9 20
/ \
15 7
返回其層次遍歷結果:
[[3],
[9,20],
[15,7]
]個人思路:
這道題目明確要求使用層序遍歷,按從左到右訪問節點,根據輸出提示來看,需要儲存每一層的訪問結果。我的思路就是:使用列表來儲存每一層的非none的節點,然後利用該佇列生成該層的訪問結果,隨後更新該列表為下一層的非none節點,本質思路也還是bfs。具體**如下:
class solution:
def levelorder(self, root: treenode) -> list[list[int]]:
if not root:
return
results =
queue =
while queue:
layer = [node.val for node in queue if node]
# 更新queue為下一層非none節點
temp = queue
queue =
for node in temp:
if node.left:
if node.right:
return results
class solution(object):def levelorder(self, root):
queue = collections.deque()
res =
while queue:
size = len(queue) # 通過設定for迴圈的長度,以達到記錄每層訪問結果的目的
level =
for _ in range(size):
cur = queue.popleft()
if not cur:
continue
if level:
return res
102 二叉樹的層序遍歷
給你乙個二叉樹,請你返回其按 層序遍歷 得到的節點值。即逐層地,從左到右訪問所有節點 示例 二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回其層次遍歷結果 3 9,20 15,7 佇列實現層序遍歷 也可使用棧 遞迴 實現 definition for a binary ...
102 二叉樹的層序遍歷
給你乙個二叉樹,請你返回其按 層序遍歷 得到的節點值。即逐層地,從左到右訪問所有節點 示例 二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回其層次遍歷結果 3 9,20 15,7 definition for a binary tree node.class tree...
102 二叉樹的層序遍歷
給你乙個二叉樹,請你返回其按 層序遍歷 得到的節點值。即逐層地,從左到右訪問所有節點 示例 二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回其層序遍歷結果 3 9,20 15,7 解題思路 1.返回乙個二維陣列所以建立乙個二維陣列空間,建立乙個integer型陣列儲存...