429. N 叉树的层序遍历
每日几道leetcode刷刷题!
传送门
题目描述
给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。
树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。
示例 1:
输入:root = [1,null,3,2,4,null,5,6]
输出:[[1],[3,2,4],[5,6]]
代码
# Definition for a Node.
class Node:
def __init__(self, val=None, children=None):
self.val = val
self.children = children
"""
class Solution:
def levelOrder(self, root: 'Node') -> List[List[int]]:
if not root:
return []
res = []
quene = [root]
while quene:
n = len(quene)
temp = []
for i in range(n): #遍历一层
cur = quene.pop(0)
temp.append(cur.val)
for child in cur.children:
quene.append(child)
res.append(temp)
return res
总结
这道题跟二叉树的层次遍历差不多,只不过⼀个节点有多些孩⼦了,用for child in cur.children:quene.append(child)