429.n-ary-tree-level-order-traversal


429. N叉树的层序遍历

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

例如,给定一个 3叉树 :

   

返回其层序遍历:

[ [1], [3,2,4], [5,6] ]  

说明:

1.树的深度不会超过 1000。
2.树的节点总数不会超过 5000。

解法一

递归

"""
# 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]]:
      self.traverse_path = []
      if root:
        self.helper(root, 0)
      return self.traverse_path

    def helper(self, node, level):
      if len(self.traverse_path) == level:
        self.traverse_path.append([])
      self.traverse_path[level].append(node.val)
      for child in node.children:
        self.helper(child, level+1)