41、二叉树-二叉树的层序遍历

思路:

        层序遍历就是从左到右依次遍历。这个时候就可以使用队列的方式。例如先把头节点入队,然后遍历开始,首先计算队列长度,第一层,长度为了,遍历一次,依次出队,头结点出队,然后头结点的左右子节点入队。再次遍历,队列长度为2,在出队入队,队列长度为4。这样每次每次遍历都是把当层的所有节点轮询完成,然后每个节点的左右节点在入队,完成下一层的关联。

代码如下:

  public List<List<Integer>> levelOrder(TreeNode root) {List<List<Integer>> ans = new LinkedList<>();if (root==null){return ans;}//构建一个队列 先进先出Queue<TreeNode> queue = new LinkedList<>();queue.add(root);while (!queue.isEmpty()){List<Integer> list = new ArrayList<>();//每次记录 queue的长度int size = queue.size();for (int i = 0; i <size ; i++) {TreeNode cur = queue.poll();if (cur.left!=null){queue.add(cur.left);}if (cur.right!=null){queue.add(cur.right);}list.add(cur.val);}ans.add(list);}return ans;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/631041.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux的学习之路:13、进程替代

摘要 本章主要是说一下进程替代用到的函数exec以及自己实现的简易shell 目录 摘要 一、进程程序替换 1、替换原理 2 、替换函数 3、函数解释与命令理解 4、代码演示 1、execl 2、execv 3、execlp 4、execvp 二、简易的myshell 三、代码 myshell exec 一、进程…

Ubuntu 22最新dockers部署redis哨兵模式,并整合spring boot的详细记录(含spring boot项目包)

dockers部署redis哨兵模式&#xff0c;并整合spring boot 环境说明相关学习博客一、在docker中安装redis1、下载dockers镜像包和redis配置文件&#xff08;主从一样&#xff09;2、编辑配置文件&#xff08;主从一样&#xff09;3、启动redis&#xff08;主从一样&#xff09;4…

【OpenGL实践08】现代渲染管线在GLUT和Pygame和Qt.QOpenGLWidget上各自的实现代码

Qt.QOpenGLWidget进行现代渲染管线实验效果 一、说明 据说QOpenGLWidget是用来取代QGLWidget的继承者&#xff0c;我们试图将GLUT上的旧代码改成QOpenGLWidget&#xff0c;本以为差别不大&#xff0c;轻易搞定&#xff0c;经实践发现要付出极大努力才能完成。经多次实验发现G…

工作流JBPM操作API组任务

文章目录 8.10 组任务8.10.1 组任务的分配8.10.1.1 写死的方式指定8.10.1.2 实现AssignmentHandler接口指定 8.10.2 查询自己的组任务8.10.3 办理自己的组任务 8.10 组任务8.10.1 组任务的分配8.10.1.1 写死的方式指定8.10.1.2 实现AssignmentHandler接口指定 8.10.2 查询自己的…

算法打卡day38

今日任务&#xff1a; 1&#xff09;完全背包理论基础(卡码网52. 携带研究材料) 2&#xff09;518.零钱兑换II 3&#xff09;377. 组合总和 Ⅳ 4&#xff09;复习day13 完全背包理论基础(卡码网52. 携带研究材料) 题目链接&#xff1a;52. 携带研究材料&#xff08;第七期模拟…

.NET 爬虫从入门到入狱

目录 前言 1.&#x1f4a1;使用HttpClient爬取数据 2.&#x1f680;模拟User-Agent 3.&#x1f935;使用HTML解析库 3.&#x1f44c;前端Price显示 4.&#x1f331;运行实例 获取金价Au 5.&#x1f9fe;使用正则表达式解析 6.&#x1f4ab;获取BTC价格 7.✨获取CSDN热点…

DevOps是什么?

DevOps是一系列实践、工具和文化理念的组合&#xff0c;旨在自动化并整合软件开发和信息技术运维团队之间的流程。以下是DevOps的几个关键点&#xff1a; 沟通与协作&#xff1a;DevOps强调开发和运维团队之间的沟通与合作&#xff0c;通过改善这两个部门间的协作关系&#xff…

关于MCU核心板的一些常见问题

BGA植球与焊接&#xff08;多涂焊油&#xff09;&#xff1a; 【BGA芯片是真麻烦&#xff0c;主要是植锡珠太麻烦了&#xff0c;拆一次就得重新植】https://www.bilibili.com/video/BV1vW4y1w7oNvd_source3cc3c07b09206097d0d8b0aefdf07958 / NC电容一般有两种含义&#xff1…

Java List<T>流Stream常用API详细应用场景及示例代码

Java List流Stream常用API详细应用场景及示例代码 1. Stream简介2. 创建Stream示例代码&#xff1a; 3. 中间操作3.1 根据createTime倒序排序示例代码&#xff1a;3.2 根据age倒序排序示例代码&#xff1a;3.3 role条件查询示例代码&#xff1a;3.4 获取sex为female的list集合示…

npm内部机制与核心原理

npm 的核心目标&#xff1a; Bring the best of open source to you, your team and your company. npm 最重要的任务是安装和维护开源库。 npm 安装机制与背后思想 npm 的安装机制非常值得探究。Ruby 的 Gem&#xff0c;Python 的 pip 都是全局安装机制&#xff0c;但是 npm …

Root mapping definition has unsupported parameters: [all : {analyzer=ik_max_wor

你们好&#xff0c;我是金金金。 场景 我正在使用Springboot整合elasticsearch&#xff0c;在创建索引(分词器) 运行报错&#xff0c;如下 排查 排查之前我先贴一下代码 import org.elasticsearch.action.admin.indices.create.CreateIndexRequest; // 注意这个包SpringBootTe…

SpringBoot项目创建,详细流程

一、前言 Spring Boot是一个开源的Java框架&#xff0c;由Pivotal团队&#xff08;现为VMware旗下&#xff09;开发&#xff0c;通过提供默认配置和一系列启动器&#xff08;starters&#xff09;来简化项目配置&#xff0c;使得开发者能够快速启动和运行Spring应用程序。 ‍ …