[LeetCode&Python] Problem 429. N-ary Tree Level Order Traversal

Given an n-ary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).

For example, given a 3-ary tree:

We should return its level order traversal:

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

Note:

  1. The depth of the tree is at most 1000.
  2. The total number of nodes is at most 5000.
 
"""
# Definition for a Node.
class Node(object):
    def __init__(self, val, children):
        self.val = val
        self.children = children
"""
class Solution(object):
    def levelOrder(self, root):
        """
        :type root: Node
        :rtype: List[List[int]]
        """
        ans=[]
        if root:
            q=[root]
            
            while q:
                n=len(q)
                ansforlevel=[]
                for i in range(n):
                    qtop=q.pop(0)
                    ansforlevel.append(qtop.val)
                    for c in qtop.children:
                        q.append(c)
        
                ans.append(ansforlevel)
        
        return ans

  

猜你喜欢

转载自www.cnblogs.com/chiyeung/p/9834677.html