List<Integer> values = new ArrayList<>();
Queue<Node> queue = new LinkedList<>();
queue.add(root);
while (!queue.isEmpty()) {
Node nextNode = queue.remove();
values.add(nextNode.val);
for (Node child : nextNode.children) {
queue.add(child);
}
}
/*
// 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>> res = new ArrayList<>();
Queue<Node> queue = new LinkedList<>();
if (root ==null) return res;
queue.add(root);
while (!queue.isEmpty()){
List<Integer> list = new ArrayList<>();
int size = queue.size();
for (int i=1; i<=size; i++){
Node node = queue.poll();
list.add(node.val);
queue.addAll(node.children);
}
res.add(list);
}
return res;
}
}