题目
给定一个 N 叉树
,返回其节点值的层序遍历。(即从左到右,逐层遍历)。
例如,给定一个 3叉树
:
返回其层序遍历:
[
[1],
[3, 2, 4],
[5, 6]
]
说明:
- 树的深度不会超过 1000。
- 树的节点总数不会超过 5000。
方案一(广度优先搜索)
"""
# Definition for a Node.
class Node:
def __init__(self, val=None, children=None):
self.val = val
self.children = children
"""
def levelOrder(self, root: 'Node') -> [[int]]:
if not root:
return []
ret = []
deque = collections.deque([root])
while deque:
count = len(deque) # 每一层的数量
layer = []
for _ in range(count):
node = deque.popleft()
layer.append(node.val)
if node.children:
deque.extend(node.children)
ret.append(layer)
return ret
原文
https://leetcode-cn.com/explore/learn/card/n-ary-tree/159/traversal/622/