zl程序教程

您现在的位置是:首页 >  后端

当前栏目

429. N 叉树的层序遍历

遍历 层序
2023-09-14 09:01:25 时间

文章目录

Question

429. N 叉树的层序遍历

给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。

树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。

 

示例 1:



输入:root = [1,null,3,2,4,null,5,6]
输出:[[1],[3,2,4],[5,6]]
示例 2:



输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
输出:[[1],[2,3,4,5],[6,7,8,9,10],[11,12,13],[14]]
 

提示:

树的高度不会超过 1000
树的节点总数在 [0, 10^4] 之间

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/n-ary-tree-level-order-traversal
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

Ideas

bfs

Code

"""
# 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]]:
        def bfs(node):
            if not node:
                return []
            q = [root]
            res = []
            while q:
                length = len(q)
                tem = []
                for i in range(length):
                    t = q.pop(0)
                    tem.append(t.val)
                    for j in t.children:
                        q.append(j)
                res.append(tem)
            return res
        return bfs(root)