代码改变世界

[LeetCode] 429. N-ary Tree Level Order Traversal_ Easy

2018-07-22 04:09  Johnson_强生仔仔  阅读(564)  评论(0编辑  收藏  举报

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.

 

这个题目思路跟[LeetCode] 102. Binary Tree Level Order Traversal_Medium tag: BFS思路类似.

 

class Solution:
    def nary_levelOrderTraversal(self, root):
        if not root: return []
        queue, ans = collections.deque([root]), []
        while queue:
            size, temp = len(queue), []
            for _ in range(size):
                node = queue.popleft()
                temp.append(node.val)
                for each in node.children:
                    queue.append(each)
            ans.append(temp)
        return ans