102 二叉樹的層序遍歷

2021-10-06 15:00:19 字數 1213 閱讀 6497

題目描述:

給你乙個二叉樹,請你返回其按 層序遍歷 得到的節點值。 (即逐層地,從左到右訪問所有節點)。

示例:二叉樹:[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型陣列儲存...