Input: root = [1,null,3,2,4,null,5,6]
Output: [[1],[3,2,4],[5,6]]
思路:就是一个queue的level order 收集;
/*
// Definition for a Node.
class Node {
public int val;
public List<Node> children;
public Node() {}
public Node(int _val) {
val = _val;
}
public Node(int _val, List<Node> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public List<List<Integer>> levelOrder(Node root) {
List<List<Integer>> lists = new ArrayList<List<Integer>>();
if(root == null) {
return lists;
}
Queue<Node> queue = new LinkedList<Node>();
queue.offer(root);
while(!queue.isEmpty()) {
int size = queue.size();
List<Integer> list = new ArrayList<Integer>();
for(int i = 0; i < size; i++) {
Node node = queue.poll();
list.add(node.val);
for(Node child: node.children) {
queue.offer(child);
}
}
lists.add(list);
}
return lists;
}
}