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

二叉树的层序遍历 II

题目链接

二叉树的层序遍历 II

题目描述

注意点

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

解答思路

  • 根据队列先进先出的特点层序遍历所有的节点(从左到右),又因为需要自底向上的输出层序遍历的结果,所以可以将每一次遍历的结果存储到栈中,根据栈先进后出的特点将结果输出

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<List<Integer>> levelOrderBottom(TreeNode root) {List<List<Integer>> res = new ArrayList<>();if (root == null) {return res;}Deque<List<Integer>> stack = new ArrayDeque<>();Deque<TreeNode> queue = new ArrayDeque<>();queue.offer(root);while (!queue.isEmpty()) {int size = queue.size();List<Integer> list = new ArrayList<>(size);stack.push(list);for (int i = 0; i < size; i++) {TreeNode node = queue.poll();if (node.left != null) {queue.offer(node.left);}if (node.right != null) {queue.offer(node.right);}list.add(node.val);}}while (!stack.isEmpty()) {res.add(stack.pop());}return res;}
}

关键点

  • 栈和队列的特点及使用

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ClickHouse 的底层架构和原理
  • 记录一次显卡驱动安装
  • 算法面经手撕系列(3)--手撕LayerNormlization
  • Qt/C++ TCP调试助手V1.1 新增图像传输与接收功能(附发布版下载链接)
  • leetcode 437.路径总和III
  • FPGA基本结构和简单原理
  • docker|Oracle数据库|docker快速部署Oracle11g和数据库的持久化(可用于生产环境)
  • 如何免费调用GPT API进行自然语言处理
  • 力扣2563.统计公平数对的数目
  • 2024年9月第3周AI资讯
  • android10 系统定制:增加应用使用数据埋点,应用使用时长统计
  • 【uni-app】小兔鲜项目-基础架构-请求和上传文件拦截器
  • 大数据最新面试题(持续更新)
  • 语音识别与语音控制的原理介绍
  • C++的初阶模板和STL
  • @jsonView过滤属性
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • Android Studio:GIT提交项目到远程仓库
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • cookie和session
  • exif信息对照
  • HTML中设置input等文本框为不可操作
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Node + FFmpeg 实现Canvas动画导出视频
  • Spark RDD学习: aggregate函数
  • Terraform入门 - 1. 安装Terraform
  • Vue2 SSR 的优化之旅
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 好的网址,关于.net 4.0 ,vs 2010
  • 区块链技术特点之去中心化特性
  • 时间复杂度与空间复杂度分析
  • 实习面试笔记
  • 项目管理碎碎念系列之一:干系人管理
  • 小试R空间处理新库sf
  • 异步
  • 用element的upload组件实现多图片上传和压缩
  • 大数据全解:定义、价值及挑战
  • ​Linux·i2c驱动架构​
  • ​Spring Boot 分片上传文件
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • #07【面试问题整理】嵌入式软件工程师
  • $forceUpdate()函数
  • (安卓)跳转应用市场APP详情页的方式
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (三)mysql_MYSQL(三)
  • (十八)SpringBoot之发送QQ邮件
  • (四) 虚拟摄像头vivi体验
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)详解PHP处理密码的几种方式
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .dwp和.webpart的区别
  • .env.development、.env.production、.env.staging