美文网首页
多叉树的层序遍历

多叉树的层序遍历

作者: 加油_汤姆叔叔 | 来源:发表于2019-06-27 01:02 被阅读0次

LeetCode 链接:(https://leetcode-cn.com/problems/n-ary-tree-level-order-traversal/)

题目:层序遍历的方式遍历多叉树
递归的方式就不用说了,直接写迭代吧。
code如下:


    public List<List<Integer>> levelOrder(Node root) {
        if(root == null){
            return new ArrayList<>();
        }
        List<List<Integer>> result = new ArrayList<>();
        Queue<Node> queue = new LinkedList<>();
        queue.offer(root);
        //result.add(new ArrayList<>(root.val));
        while(!queue.isEmpty()){
            // 这里要对当前队列的内容进行遍历
            // 因为当前队列中保存的是多叉树中每一层的内容,
            // 所以每次下面的for循环是遍历每一层,
            // 最下面的for循环是每一层中的每个元素有多少个child,
            // 将child塞入队列以便于下一次遍历,因为每一层的个数在
            // int size = queue.size()中已经记录,所以不用担心会遍历多出来的node。
            int size = queue.size();
            List<Integer> temp = new ArrayList<>();
            for(int i = 0;i < size;i++){
                Node node = queue.poll();
                temp.add(node.val);
                List<Node>child = node.children;
                if(child == null || child.isEmpty()) continue;
                for(int j = 0;j < child.size();j++){
                    queue.offer(child.get(j));
                }
            }
            
            result.add(temp);
        }
        
        return result;
    }
}

相关文章

  • 多叉树层次遍历

    给定一个N叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。 例如,给定一个 3叉树 : 返回其层序遍历:...

  • leecode刷题(25)-- 二叉树的层序遍历

    leecode刷题(25)-- 二叉树的层序遍历 二叉树的层序遍历 给定一个二叉树,返回其按层次遍历的节点值。 (...

  • LeetCode-102-二叉树的层序遍历

    LeetCode-102-二叉树的层序遍历 102. 二叉树的层序遍历[https://leetcode-cn.c...

  • 429-N叉树的层序遍历

    N叉树的层序遍历 题目 给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。 例如,给定一个3...

  • 树的遍历

    N叉树的遍历 N叉树的前序遍历 N叉树的后序遍历 N叉树的层序遍历 二叉树 鉴于递归法遍历比较简单,就不重复写了 ...

  • 数据结构与算法之二叉树遍历(七)

    目录 前序遍历中序遍历后序遍历层序遍历遍历方式的选择条件根据遍历结果重构二叉树翻转二叉树计算二叉树的高度判断一棵树...

  • 二叉树相关算法

    二叉树定义 前序遍历(中序遍历、后续遍历只需要调整append的顺序即可) 层序遍历 二叉树的最大深度 对称二叉树...

  • N叉树的层序遍历

    给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。 例如,给定一个 3叉树 : 返回其层序遍...

  • LeetCode - 429. N叉树的层序遍历

    给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。 例如,给定一个 3叉树 : 返回其层序遍...

  • LeetCode-103-二叉树的锯齿形层序遍历

    LeetCode-103-二叉树的锯齿形层序遍历 103. 二叉树的锯齿形层序遍历[https://leetcod...

网友评论

      本文标题:多叉树的层序遍历

      本文链接:https://www.haomeiwen.com/subject/nvmkcctx.html