和二叉树层序遍历方法大同小异。
/*
// 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 LinkedList<>();
if (root == null){
return res;
}
Queue<Node> que = new LinkedList<>();
que.add(root);
while (!que.isEmpty()){
List<Integer> layer = new ArrayList<>();
int n = que.size();
for (int i = 0; i < n; i++) {
Node temp = que.poll();
layer.add(temp.val);
for (Node a : temp.children
) {
que.add(a);
}
}
res.add(layer);
}
return res;
}
}