leetcode 102 二叉樹的層序遍歷

2021-10-08 14:29:52 字數 960 閱讀 6238

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

示例:二叉樹:[3,9,20,null,null,15,7],

3/ \

9  20

/  \

15   7

返回其層次遍歷結果:

[[3],

[9,20],

[15,7]

]

# definition for a binary tree node.

# class treenode(object):

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class solution(object):

def levelorder(self, root):

""":type root: treenode

:rtype: list[list[int]]

"""if not root:

return

stack = [root]

res =

while stack:

n = len(stack)

temp =

for i in range(n):

root = stack.pop(0)

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迴圈,迴圈次數...