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;
        
    }

posted @ 2022-02-23 13:14  一颗青菜  阅读(4)  评论(0)    收藏  举报