给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。
例如,给定一个 3叉树
:
返回其层序遍历:
[
[1],
[3,2,4],
[5,6]
]
说明:
- 树的深度不会超过
1000
。 - 树的节点总数不会超过
5000
。
class Solution {
public List<List<Integer>> levelOrder(Node root) {
List<List<Integer>> res = new LinkedList<>();
if(root == null) return res;
Queue<Node> queue = new LinkedList<>();
queue.offer(root);
while(!queue.isEmpty()) {
List<Integer> list = new LinkedList<>();
int sz = queue.size();
for(int i = 0; i < sz; i++) {
list.add(queue.peek().val); //返回首部
queue.addAll(queue.poll().children); //移除首部后的子树
}
res.add(list);
}
return res;
}
}