当前位置: 首页 > article >正文

二叉树的层序遍历||力扣--107

目录

题目

思路

代码


题目

给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)

示例 1:

输入:root = [3,9,20,null,null,15,7]
输出:[[15,7],[9,20],[3]]

示例 2:

输入:root = [1]
输出:[[1]]

示例 3:

输入:root = []
输出:[]

思路

参照力扣102,只需最后把数组反转即可

代码

class Solution {
    public List<List<Integer>> levelOrderBottom(TreeNode root) {
        List<List<Integer>> list=new ArrayList<List<Integer>>();//二维数组
        Deque<TreeNode> deq=new LinkedList<>();//队列
        if(root==null){return list;}//特殊情况
        deq.offerLast(root);
        while(!deq.isEmpty()){
            List<Integer> levelList = new ArrayList<>();
            int len=deq.size();
            while(len>0){
                TreeNode e=deq.poll();
                levelList.add(e.val);
                if(e.left!=null){deq.offerLast(e.left);}
                if(e.right!=null){deq.offerLast(e.right);}
                len--;
            }
             list.add(levelList);//把一层的结果加入到最终的结果集中
        }
        List<List<Integer>> result = new ArrayList<>();
        for (int i = list.size() - 1; i >= 0; i-- ) {/反转了数组
            result.add(list.get(i));
    }
    return result;
}
}


http://www.kler.cn/a/519686.html

相关文章:

  • Objective-C语言的计算机基础
  • 《CPython Internals》阅读笔记:p360-p377
  • Day42:列表的组合
  • 免费SSL证书申请,springboot 部署证书
  • 【java数据结构】map和set
  • Ubuntu20.04 深度学习环境配置(持续完善)
  • chrome插件:网页图片高清下载
  • 使用LPT wiggler jtag自制三星单片机(sam88 core)编程器-S3F9454
  • 网易Android开发面试题200道及参考答案 (上)
  • 左右互博02-frida主动调用so函数
  • vue3组件el-table报错
  • 【python】三帧差法实现运动目标检测
  • postman生成前端测试接口时,是在本地还是在线上?
  • 从零开始构建一个JAVA项目
  • Linux学习笔记——网络管理命令
  • 旅游风景的代码项目
  • 数据结构基础之《(15)—排序算法小结》
  • MATLAB 如何避免复杂shp文件对inpolygon的影响
  • 3大关键点教你用Java和Spring Boot快速构建微服务架构:从零开发到高效服务注册与发现的逆袭之路
  • 不建模,无代码,如何构建一个3D虚拟展厅?
  • 【前端】CSS实战之音乐播放器
  • InceptionV1_V2
  • 贝尔科技液氮罐确保每一份样本的保存达标
  • 【Rust自学】14.3. 使用pub use导出方便使用的API
  • 算法每日双题精讲 —— 二分查找(山脉数组的峰顶索引,寻找峰值)
  • 使用 MySQL JSON 查询筛选嵌套字段的值