429. N-ary Tree Level Order Traversal

Given an n-ary tree, return the level order traversal of its nodes' values.

Nary-Tree input serialization is represented in their level order traversal, each group of children is separated by the null value (See examples).

 

Example 1:

Input: root = [1,null,3,2,4,null,5,6]
Output: [[1],[3,2,4],[5,6]]

Example 2:

Input: 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]
Output: [[1],[2,3,4,5],[6,7,8,9,10],[11,12,13],[14]]

分析: use BFS
 1 /*
 2 // Definition for a Node.
 3 class Node {
 4     public int val;
 5     public List<Node> children;
 6 
 7     public Node() {}
 8 
 9     public Node(int _val) {
10         val = _val;
11     }
12 
13     public Node(int _val, List<Node> _children) {
14         val = _val;
15         children = _children;
16     }
17 };
18 */
19 class Solution {
20     public List<List<Integer>> levelOrder(Node root) {
21         List<List<Integer>> result = new LinkedList<>();
22         if (root == null) return result;
23         
24         Queue<Node> queue = new LinkedList<>();
25         queue.add(root);
26         List<Integer> temp = new LinkedList<>();
27         
28         while (!queue.isEmpty()) {
29             int count = queue.size();
30             temp.clear();
31             for (int i = 1; i <= count; i++) {
32                 Node node = queue.poll();
33                 temp.add(node.val);
34                 for (Node child : node.children) {
35                     queue.offer(child);
36                 }
37             }
38             result.add(new LinkedList<>(temp));
39         }
40         return result;
41     }
42 }

 

 
posted @ 2020-02-18 07:30  北叶青藤  阅读(168)  评论(0编辑  收藏  举报