leetcode102 二叉樹的層序遍歷

2021-10-06 09:23:53 字數 1001 閱讀 5661

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

bfs大致都是這樣的思路:

t1 : 用到deque的結構來模擬佇列 

t2 : 佇列裡有乙個初始點

t3 : 每次處理從佇列出隊乙個元素

t4 :  對元素進行擴張()

t6 :然後接著迴圈處理deque中的元素,直到deque為空,則代表所有的點都已經完成擴張

t7 : 結果

# definition for a binary tree node.

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class solution:

def levelorder(self, root: treenode) -> list[list[int]]:

if not root: return # 特殊情況,root為空直接返回

from collections import deque

# 下面就是bfs模板內容,bfs關鍵在於佇列的使用

layer = deque()

res = # 結果集

while layer:

cur_layer = # 臨時變數,記錄當前層的節點

for _ in range(len(layer)): # 遍歷某一層的節點

node = layer.popleft() # 將要處理的節點彈出

if node.left: # 如果當前節點有左右節點,則壓入佇列,根據題意注意壓入順序,先左後右,

if node.right:

return res

LeetCode 102 二叉樹的遍歷

給定乙個二叉樹,返回其按層次遍歷的節點值。即逐層地,從左到右訪問所有節點 例如 給定二叉樹 返回其層次遍歷結果 如下 definition for a binary tree node.public class treenode public class solution list res new ...

LeetCode 102 二叉樹的層次遍歷

題目鏈結 題目描述 給定乙個二叉樹,返回其按層次遍歷的節點值。即逐層地,從左到右訪問所有節點 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回其層次遍歷結果 3 9,20 15,7 解決方法 廣度優先 層次 遍歷,使用佇列實現 具體思路 在訪問了乙個節點之後...

LeetCode 102 二叉樹的層次遍歷

給定乙個二叉樹,返回其按層次遍歷的節點值。即逐層地,從左到右訪問所有節點 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回其層次遍歷結果 3 9,20 15,7 此題需要將各個層的節點分別儲存到不同的陣列中。所以在while迴圈中,加了乙個for迴圈,迴圈次數...