力扣双指针算法题目:二叉树的层序遍历(BFS)

目录

1.题目

2.思路解析

3.代码


1.题目

. - 力扣(LeetCode)

2.思路解析

对二叉树进行层序遍历,顾名思义,就是按每一层的顺序对二叉树一层一层地进行遍历

思路如下

从第一层开始,先将二叉树地头放入队列q,并设置一个只会指向队头的指针front=q.top(),

经过这一步的操作,我们便完成了二叉树第一层的遍历

接着,对二叉树的第二层进行遍历,先将第一层的节点从队列q中探出,然后将其数据放入数组v

因为二叉树第二层的节点就是第一层节点的子节点,所以这个时候我们只要使用第一层节点的指针域检索到第二层节点并且放入队q

然后再循环进行第一个节点进行过的操作,将节点弹出q,数据进去v

综上所述首先要进行的循环(需要被重复操作的步骤)是要判断q是否为空,这个while循环所需要循环的次数是直到整个二叉树节点全部都被层序遍历遍历完毕为止 

如果队q为空,那么说明二叉树已经被全部遍历完毕

紧接着第二个需要进行的循环便是对每个节点进行弹出q,再将其数据入v,最后将其子节点入q操作

3.代码

class Solution {
public:vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int>> ans;if(root==nullptr) return ans;queue<TreeNode*> q;q.push(root);int numlaynode=1;while(!q.empty()){vector<int> v;while(numlaynode!=0){numlaynode--;TreeNode*front=q.front();q.pop();v.push_back(front->val);if(front->left!=nullptr){q.push(front->left);}if(front->right!=nullptr){q.push(front->right);}}numlaynode=q.size();ans.push_back(v);}return ans;}
};

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

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

相关文章

独孤思维:副业被骂煞笔,割韭菜

做副业不要被外界干扰&#xff0c;不要被情绪牵绊。 不要因为别人的无心谩骂&#xff0c;随口一评&#xff0c;就偃旗息鼓。 不要因为自己的情绪需要&#xff0c;找存在感&#xff0c;寻求人安慰。 他强任他强&#xff0c;清风拂山岗。 他横由他横&#xff0c;明月照大江。…

2007-2022年中国各企业数字化转型与供应链效率

企业数字化转型与供应链效率是现代企业管理和发展的两个关键方面。以下是对中国各企业数字化转型与供应链效率数据的介绍&#xff1a; 数据简介 企业数字化转型&#xff1a;指企业通过采用数字技术与创新方法&#xff0c;改造业务流程、组织结构和产品服务&#xff0c;以提升…

UCOS-III 系统移植

1. 移植前准备 1.1 源码下载 UCOS-III Kernel Source&#xff1a; https://github.com/weston-embedded/uC-OS3.git Micriμm CPU Source &#xff1a; https://github.com/weston-embedded/uC-CPU.git Micriμm Lib Source&#xff1a; https://github.com/weston-embedded…

Nginx配置文件全解:从入门到设计

Nginx配置文件全解&#xff1a;从入门到架构设计 1. Nginx配置文件基础 Nginx的主配置文件通常位于/etc/nginx/nginx.conf​。配置文件使用简单的文本格式&#xff0c;由指令和指令块组成。 1.1 基本语法规则 每个指令以分号(;)结束指令块用大括号({})包围配置文件支持使用…

多方SQL计算场景下,如何达成双方共识,确认多方计算作业的安全性

安全多方计算在SQL场景下的限制 随着MPC、隐私计算等概念的流行&#xff0c; 诸多政府机构、金融企业开始考虑参与到多方计算的场景中&#xff0c; 扩展数据的应用价值。 以下面这个场景为例&#xff0c; 银行可能希望获取水电局和税务局的数据&#xff0c;来综合计算得到各…

DolphinScheduler-3.1.9 资源中心实践

前言 目前DolphinScheduler最新的稳定版本是 3.1.9 &#xff0c;基于此做些探索&#xff0c;逐渐深化学习路径&#xff0c;以便于加深理解。 3.2.1 是最新的版本。目前的稳定版本是 3.1.9 基础环境&#xff1a;Hadoop3.3, Java 8, Python3, MacOS14.2.1 一、本地伪分布式安装…

学习笔记——动态路由——IS-IS中间系统到中间系统(开销)

四、IS-IS开销 1、IS-IS 开销简介 在IS-IS协议刚面世时&#xff0c;互联网网络结构还非常简单&#xff0c;因此IS-IS早期的版本中只使用了6bit来描述链路开销&#xff0c;链路开销的取值范围是1-63。一条路由的开销范围只有10bit&#xff0c;取值范围是0-1023。 随着计…

前端实现无缝自动滚动动画

1. 前言: 前端使用HTMLCSS实现一个无缝滚动的列表效果 示例图: 2. 源码 html部分源码: <!--* Author: wangZhiyu <w3209605851163.com>* Date: 2024-07-05 23:33:20* LastEditTime: 2024-07-05 23:49:09* LastEditors: wangZhiyu <w3209605851163.com>* File…

【ubuntu】安装(升级)显卡驱动,黑屏|双屏无法使用问题解决方法

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 ubuntu 安装(升级)显卡驱动&#xff0c;黑屏|双屏无法使用问题解决方法 由于项目需要&#xff0c;对显卡驱动进行升级。升级完就黑屏。。。。&#xff0…

Fast R-CNN(论文阅读)

论文名&#xff1a;Fast R-CNN 论文作者&#xff1a;Ross Girshick 期刊/会议名&#xff1a;ICCV 2015 发表时间&#xff1a;2015-9 ​论文地址&#xff1a;https://arxiv.org/pdf/1504.08083 源码&#xff1a;https://github.com/rbgirshick/fast-rcnn 摘要 这篇论文提出了一…

WordPress禁止用户注册某些用户名

不管在任何网站&#xff0c;用户注册时都有一个屏蔽非法关键词&#xff0c;就是禁止注册某些用户名&#xff0c;原因是因为防止用户使用一些特定的用户名&#xff0c;例如管理员、官方等用户名&#xff0c;还有就是那些攻击性的词语了。 加网站添加了屏蔽非法关键词&#xff0…

BAT-致敬精简

什么是bat bat是windows的批处理程序&#xff0c;可以批量完成一些操作&#xff0c;方便快速。 往往我们可以出通过 winR键来打开指令窗口&#xff0c;这里输入的就是bat指令 这里就是bat界面 节约时间就是珍爱生命--你能想象以下2分钟的操作&#xff0c;bat只需要1秒钟 我…

考虑数据库粒度的设计-提升效率

目录 概要 场景 设计思路 小结 概要 公开的资料显示&#xff0c;数据库粒度是&#xff1a;“在数据库领域&#xff0c;特别是数据仓库的设计中&#xff0c;粒度是一个核心概念&#xff0c;它直接影响到数据分析的准确性和存储效率。粒度的设定涉及到数据的详细程度和精度&…

【JVM基础篇】Java的四种垃圾回收算法介绍

文章目录 垃圾回收算法垃圾回收算法的历史和分类垃圾回收算法的评价标准标记清除算法优缺点 复制算法优缺点 标记整理算法&#xff08;标记压缩算法&#xff09;优缺点 分代垃圾回收算法&#xff08;常用&#xff09;JVM参数设置使用Arthas查看内存分区垃圾回收执行流程分代GC算…

【SpringBoot】IDEA查看spring bean的依赖关系

前因&#xff1a;在研究springcloud config组件时&#xff0c;我发现config-server包下的EnvironmentController可以响应客户端的请求&#xff0c;但EnvironmentController并不在启动类所在的包路径下&#xff0c;所以我推测它是作为某个Bean方法在生效&#xff0c;寻找bean的依…

vue-router 源码分析——9.别名

这是对vue-router 3 版本的源码分析。 本次分析会按以下方法进行&#xff1a; 按官网的使用文档顺序&#xff0c;围绕着某一功能点进行分析。这样不仅能学习优秀的项目源码&#xff0c;更能加深对项目的某个功能是如何实现的理解。这个对自己的技能提升&#xff0c;甚至面试时…

DAY1: 实习前期准备

文章目录 VS Code安装的插件C/CCMakeGitHub CopilotRemote-SSH收获 VS Code 下载链接&#xff1a;https://code.visualstudio.com 安装的插件 C/C 是什么&#xff1a;C/C IntelliSense, debugging, and code browsing. 为什么&#xff1a;初步了解如何在VS Code里使用C输出…

https创建证书

需要下载httpd模块&#xff1a;yum install httpd -y 前提需要先搭建一个虚拟主机来测试证书创建的效果&#xff0c;以下面www.hehe.com为例&#xff0c;可以参考创建&#xff1a; [rootlocalhost conf.d]# vim vhost.conf <directory /www> allowoverride none requi…

关于小爱同学自定义指令执行

1.前言 之前买了小爱同学音响&#xff0c;一直想让其让我的生活变得更智能&#xff0c;编写一些程序来完成一些自动化任务&#xff0c;但是经过搜索发现&#xff0c;官方开发者平台不能用了&#xff0c;寻找api阶段浪费了我很长时间。最后在github 开源项目发现了俩个比较关键…

13.SQL注入-宽字节

SQL注入-宽字节 含义&#xff1a; MySQL是用的PHP语言&#xff0c;然后PHP有addslashes()等函数&#xff0c;这类函数会自动过滤 ’ ‘’ null 等这些敏感字符&#xff0c;将它们转义成’ ‘’ \null&#xff1b;然后宽字节字符集比如GBK它会自动把两个字节的字符识别为一个汉…