文章目录
题目
方法一:二叉树的层序遍历的扩展
思路和二叉树的层序遍历一样,这一题的关键在于取出每个节点的孩子
java
for(int j = 0;j<root.children.size();j++)//取出所有当前节点的所有孩子节点放到队列中
queue.offer(root.children.get(j));
或者
for(Node node:root.children)//取出所有当前节点的所有孩子节点放到队列中
queue.offer(node);
java
class Solution {
public List<List<Integer>> levelOrder(Node root) {
List<Integer> res = null;
List<List<Integer>> zres = new ArrayList<>();
if(root == null) return zres;
Deque<Node> queue = new LinkedList<>();
queue.offer(root);
while(!queue.isEmpty()){
int size = queue.size();
res = new ArrayList<>();
for(int i =0;i<size;i++){
root=queue.poll();
res.add(root.val);
for(int j = 0;j<root.children.size();j++)//取出所有当前节点的所有孩子节点放到队列中
queue.offer(root.children.get(j));
}
zres.add(res);
}
return zres;
}
}