和二叉树的层序遍历思路一致,只不过有些许不同,二叉树需要判断左右孩子是否存在,N叉数则需要判断其孩子列表是否存在,如果存在则将其孩子全部加到队列当中,其余思路和102题一样。
class Solution {
public List<List<Integer>> levelOrder(Node root) {
Queue<Node> queue = new ArrayDeque<>();
List<List<Integer>> res = new ArrayList<>();
if(root == null)
return res;
queue.add(root);
while (!queue.isEmpty()){
int n = queue.size();
List<Integer> temp = new ArrayList<>();
for (int i = 0; i < n; i++) {
Node node = queue.poll();
temp.add(node.val);
if(node.children != null){
for (Node j:node.children) {
queue.offer(j);
}
}
}
res.add(temp);
}
return res;
}
}