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 }