描述:給你乙個二叉樹,請你返回其按層序遍歷得到的節點值。 (即逐層地,從左到右訪問所有節點)。
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迴圈,迴圈次數...