429. N 叉树的层序遍历

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/n-ary-tree-level-order-traversal
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
层序遍历主要用到了队列。放进来一个节点,取出的时候,将该节点的孩子节点放入队列,这样孩子节点是顺序的;需要注意的是在取数据前,队列中的数据个数就是该层的数据个数。所以通过个数,控制取的数据数量。
public List<List<Integer>> levelOrder(Node root) {
List<List<Integer>> ret = new ArrayList<>();
if(root == null) {
return ret;
}
Queue<Node> queue = new LinkedList<>();
queue.offer(root);
while(!queue.isEmpty()) {
int size = queue.size();
List<Integer> list = new ArrayList<>();
for(int i=0;i<size;i++) {
Node node = queue.poll();
list.add(node.val);
for(Node n : node.children) {
queue.offer(n);
}
}
ret.add(list);
}
return ret;
}
浙公网安备 33010602011771号