107. 二叉树的层序遍历 II 队列+迭代

102. 二叉树的层序遍历

已解答

中等

相关标签

相关企业

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。

示例 1:

复制代码
输入:root = [3,9,20,null,null,15,7]
输出:[[3],[9,20],[15,7]]

示例 2:

复制代码
输入:root = [1]
输出:[[1]]

示例 3:

复制代码
输入:root = []
输出:[]

提示:

  • 树中节点数目在范围 [0, 2000] 内
  • -1000 <= Node.val <= 1000

队列+迭代

java 复制代码
public List<List<Integer>> levelOrderBottom(TreeNode root) {
        //创建结果集
        List<List<Integer>> resultList = new ArrayList<>();
        if(root == null) return resultList;
        Queue<TreeNode> que = new LinkedList<>();
        //将根结点放入队列
        que.add(root);
        while(!que.isEmpty()){
            //装载每一层数据的集合
            List<Integer> itemList = new ArrayList<>();
            int len = que.size(); //len用于判断队列元素是否属于当前层

            while(len > 0){
                //拿出临时节点
                TreeNode tmpNode = que.poll();
                itemList.add(tmpNode.val);
                if(tmpNode.left != null){que.add(tmpNode.left);}
                if(tmpNode.right != null){que.add(tmpNode.right);}
                len--;
            }
            resultList.add(itemList);
        }
        //反转
        Collections.reverse(resultList);
        return resultList;
    }
相关推荐
careathers5 分钟前
【数据结构】基于比较的排序算法 - 交换排序
数据结构·算法·排序算法
H.莓飛1 小时前
【C++】【STL】vector_OJ题
linux·服务器·开发语言·数据结构·c++·visual studio
Rabitebla1 小时前
【Linux操作系统】进程篇(十一):进程程序替换——从底层原理到 exec 函数族
linux·服务器·c++·笔记·学习·算法
tellmewhoisi1 小时前
深度学习0:数学知识:正态分布1
人工智能·深度学习·算法
-梅1 小时前
算法(1) 动态规划
算法·动态规划
青少儿编程课堂2 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:Bellman-Ford与SPFA含负权最短路及负环检测全解析
c++·python·算法·bfs·信息学竞赛
octopus_c3 小时前
STL 之 string:auto 与范围 for、常用接口、模拟实现与深浅拷贝
开发语言·c++·算法
老师我太想进步了202618 小时前
【数据结构-4】算法美学之顺序表
数据结构·算法
风影同志7832418 小时前
编码器是激活函数吗?—— 一个看起来很像、其实不是的类比
算法
UIU11418 小时前
P1481 魔族密码
c++·算法·动态规划