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

二叉树的广度优先搜索(层次遍历)

目录

定义

层序遍历的数据结构

实现过程简述

具体代码


定义

层序遍历就是从左到右一层一层地遍历二叉树。

层序遍历的数据结构

层序遍历需要借用一个辅助数据结构实现,由于队列具有先进先出的特性,符合一层一层遍历的逻辑,而栈先进后出更适合模拟深度优先遍历(递归)。

实现过程简述

首先如果根节点不为空,就将根节点放入队列里。然后设置循环,循环结束条件为队列为空(这样就可以保证遍历完二叉树中的每一个节点)。循环体里记录每层的节点数量,并设置一个节点指针保存队列首元素(以便后续使用),将首元素的值放入一个一维数组中,然后弹出首元素。使用节点指针将该节点的左子节点和右子节点放入队列。一层结束将一维数组push进结果数组(二维数组)里。遍历完毕返回结果数组。

具体代码

class Solution {
public:vector<vector<int>> levelOrder(TreeNode* root) {queue<TreeNode*> que;vector<vector<int>> result;if(root != nullptr) que.push(root);while(!que.empty()) {int size = que.size();vector<int> vec;while(size--) {TreeNode* node = que.front();que.pop();vec.push_back(node->val);if(node->left) que.push(node->left);if(node->right) que.push(node->right);}result.push_back(vec);} return result;}
};

相关文章:

二叉树的广度优先搜索(层次遍历)

目录 定义 层序遍历的数据结构 实现过程简述 具体代码 定义 层序遍历就是从左到右一层一层地遍历二叉树。 层序遍历的数据结构 层序遍历需要借用一个辅助数据结构实现&#xff0c;由于队列具有先进先出的特性&#xff0c;符合一层一层遍历的逻辑&#xff0c;而栈先进后出…...

AU音频重新混合音频,在 Adobe Audition 中无缝延长背景音乐,无缝缩短BGM

导入音频&#xff0c;选中音频&#xff0c;并且点 New Multitrack Session 的图标 设计文件名和存储路径&#xff0c;然后点 OK 点 Essential Sound 面板点 Music &#xff08;如果没有这个面板 点菜单栏 Windows > Essential Sound 调出来&#xff09; 点 Duration 展…...

11-Django项目--Ajax请求二

目录 模版: demo_list.html perform_list.html 数据库操作: 路由: 视图函数: Ajax_data.py perform.py 模版: demo_list.html {% extends "index/index.html" %} {% load static %} # 未实现修改,删除操作{% block content %}<div class"container…...

代码评审——Java占位符%n的处理

问题描述 在软件开发项目中&#xff0c;特别是在处理动态内容生成与呈现至前端界面的过程中&#xff0c;正确运用占位符以确保文本完整性和数据准确性显得尤为重要。不当的占位符管理不仅可能导致语法错误或逻辑混乱&#xff0c;还会引发一系列隐蔽的问题&#xff0c;这些问题…...

超低排放标准

据朗观视觉小编了解发现&#xff0c;超低排放标准作为衡量一个行业或企业环保水平的重要指标&#xff0c;越来越受到社会各界的关注。本文将深入探讨超低排放标准的内涵、实施意义以及未来展望。 一、超低排放标准的定义 超低排放标准&#xff0c;是指在特定工业生产过程中&am…...

Day15 —— 大语言模型简介

大语言模型简介 大语言模型基本概述什么是大语言模型主要应用领域大语言模型的关键技术大语言模型的应用场景 NLP什么是NLPNLP的主要研究方向word2vecword2vec介绍word2vec的两种模型 全连接神经网络神经网络结构神经网络的激活函数解决神经网络过拟合问题的方法前向传播与反向…...

使用了CDN,局部访问慢,如何排查

如果是局部访问慢&#xff0c;则可从如下角度查看 是否DNS设置错误导致&#xff1f; 个别用户可能存在local DNS设置错误&#xff0c;导致出现跨地域或跨运营商访问。因为CDN的权威DNS是基于用户请求的localDNS来判断所属的地区和运营商&#xff0c;从而将请求引导至对应最近…...

谈谈SQL优化

SQL优化是数据库性能优化中的关键环节&#xff0c;旨在提高查询执行的效率和响应速度。下面是一些常见的SQL优化技巧和策略&#xff0c;涵盖索引、查询设计、表结构设计等方面&#xff1a; 1. 索引优化 创建索引&#xff1a;为常用查询的过滤条件&#xff08;WHERE 子句&…...

力扣随机一题 6/26 哈希表 数组 思维

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 题目一&#xff1a; 2869.收集元素的最少操作次数【简单】 题目&#xff…...

自动化办公04 使用pyecharts制图

目录 一、柱状图 二、折线图 三、饼图 四、地图 1. 中国地图 2. 世界地图 3. 省会地图 五、词云 Pyecharts是一个用于数据可视化的Python库。它基于Echarts库&#xff0c;可以通过Python代码生成各种类型的图表&#xff0c;如折线图、柱状图、饼图、散点图等。 Pyecha…...

【Elasticsearch】在es中实现mysql中的FIND_IN_SET查询条件

需求场景: 有个文章表里面有个type字段,它存储的是文章类型,有 1头条、2推荐、3热点、4图文等等 。 商品表中有一个type字段,储存的事商品类型例如:1.热销单品,2.品类TOP10,3.销量榜TOP10等等 它的type字段值很有可能是1,2,3,4 在mysql中实现语句 select * from produc…...

内网一键部署k8s-kubeshpere,1.22.12版本

1.引言 本文档旨在指导读者在内网环境中部署 Kubernetes 集群。Kubernetes 是一种用于自动化容器化应用程序部署、扩展和管理的开源平台&#xff0c;其在云原生应用开发和部署中具有广泛的应用。然而&#xff0c;由于一些安全或网络限制&#xff0c;一些组织可能选择在内部网络…...

Python数据分析第一课:Anaconda的安装使用

Python数据分析第一课&#xff1a;Anaconda的安装使用 1.Anaconda是什么&#xff1f; Anaconda是一个便捷的获取包&#xff0c;并且对包和环境进行管理的虚拟环境工具,Anaconda包括了conda、Python在内的超过180多个包和依赖项 简单来说&#xff0c;Anaconda是包管理器和环境…...

数据结构——

1. 什么是并查集&#xff1f; 在计算机科学中&#xff0c;并查集&#xff08;英文&#xff1a;Disjoint-set data structure&#xff0c;直译为不数据结构交集&#xff09;是一种数据结构&#xff0c;用于处理一些不交集&#xff08;Disjoint sets&#xff0c;一系列没有重复元…...

微信小程序建议录音机

在小程序中实现录音机功能&#xff0c;可以通过使用小程序提供的wx.getRecorderManager() API来获取录音管理对象&#xff0c;然后使用这个对象的start()方法来开始录音&#xff0c;使用stop()方法来停止录音&#xff0c;并使用onStop()方法来监听录音的结束。以下是一个简单的…...

双指针:移动零

题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 乍一看有点难度&#xff0c;但也是快慢指针的模板。和26. 删除有序数组中的重复项类似&#xff0c;只不过多了一步填充0。 class Solution {public int removeDuplicates(int[] nums) {int fast 1,slow 1;wh…...

图像亮度和对比度的调整

在网上找了很多图像亮度的调整算法&#xff0c;下面是其中一种&#xff0c;可以通过条形框进行调整&#xff0c;并实时的查看对应参数值后的效果。 图像亮度处理公式: y [x - 127.5 * (1 - B)] * k 127.5 * (1 B); x 是输入像素值 y 是输出像素值 B 是亮度值&#xff0c; …...

Linux加固-权限管理_chattr之i和a参数

一、参数i i:如果对文件设置了i属性&#xff0c;不允许对文件进行删除、改名&#xff0c;也不能添加和修改数据&#xff1b;如果对目录设置了i属性&#xff0c;那么只能修改目录下文件的数据&#xff0c;但不允许建立和删除文件。&#xff08;相当于把文件给锁住了&#xff0c;…...

windows10/win11截图快捷键 和 剪贴板历史记录 快捷键

后知后觉的我今天又学了两招&#xff1a; windows10/win11截图快捷键 按 Windows 徽标键‌ Shift S。 选择屏幕截图的区域时&#xff0c;桌面将变暗。 默认情况下&#xff0c;选择“矩形模式”。 可以通过在工具栏中选择以下选项之一来更改截图的形状&#xff1a;“矩形模式”…...

上海计算机考研避雷,25考研慎报

上大计算机一直很热 408考研er重来没有让我失望过&#xff0c;现在上大的专业课是11408&#xff0c;按理说&#xff0c;这个专业课的难度是很高的&#xff0c;但是408er给卷出了新高度&#xff0c;大家可以去上大官网看看今年最新的数据&#xff0c;我也帮大家统计了24年最新的…...

Phi-3-Mini-128K惊艳效果:处理含JSON Schema的OpenAPI规范并生成Mock数据

Phi-3-Mini-128K惊艳效果&#xff1a;处理含JSON Schema的OpenAPI规范并生成Mock数据 1. 模型能力概览 Phi-3-Mini-128K是基于微软Phi-3-mini-128k-instruct模型开发的轻量化对话工具&#xff0c;专为处理复杂技术文档和结构化数据而优化。这个128K超长上下文的模型在解析技术…...

C++ 编译器优化选项详解

C 编译器优化选项详解 在C开发中&#xff0c;编译器优化是提升程序性能的关键手段之一。通过合理配置优化选项&#xff0c;开发者可以在不修改代码逻辑的情况下&#xff0c;显著提高程序的运行效率&#xff0c;减少资源消耗。本文将深入探讨C编译器的优化选项&#xff0c;帮助…...

生信分析效率翻倍:fastp多线程+UMI处理技巧全解析(含实战案例)

生信分析效率翻倍&#xff1a;fastp多线程UMI处理技巧全解析&#xff08;含实战案例&#xff09; 在肿瘤基因检测和ctDNA测序领域&#xff0c;数据预处理环节往往成为整个分析流程的瓶颈。传统工具在处理海量测序数据时&#xff0c;不仅耗时长达数小时&#xff0c;还经常面临内…...

RV1106平台下基于设备树的GPIO驱动开发实战

1. RV1106平台GPIO驱动开发入门指南 刚拿到RV1106开发板的时候&#xff0c;我最头疼的就是怎么控制那些GPIO引脚。作为嵌入式Linux开发者&#xff0c;GPIO控制可以说是最基础也最常用的功能。不同于单片机直接操作寄存器的方式&#xff0c;Linux系统下需要通过设备树和驱动框架…...

零基础搭建知识库:5分钟部署通义千问3-Embedding-4B向量模型

零基础搭建知识库&#xff1a;5分钟部署通义千问3-Embedding-4B向量模型 1. 引言&#xff1a;为什么选择Qwen3-Embedding-4B&#xff1f; 想象一下&#xff0c;你手头有大量文档、报告或网页内容&#xff0c;想要快速建立一个能理解语义的智能知识库。传统的关键词搜索已经无…...

【PyCon 2024闭门报告首发】:基于237个微基准测试的Python 3.14 JIT编译策略矩阵分析

第一章&#xff1a;PyCon 2024闭门报告核心结论与JIT演进全景核心共识&#xff1a;CPython JIT不再追求“全量即时编译” PyCon 2024闭门技术委员会明确指出&#xff0c;CPython 3.13 的JIT策略已从早期“通用LLVM后端”转向聚焦于“热点字节码的增量式优化”。其目标并非替代C…...

基于DWS构建RAG框架生成行业调研报告

1. 前言 适用版本&#xff1a;【DWS 9.1.1.200&#xff08;及以上&#xff09;】 在信息爆炸的时代&#xff0c;行业调研报告的生成正面临数据规模庞大、信息碎片化、人工处理效率低等多重挑战。检索增强生成&#xff08;RAG, Retrieval-Augmented Generation&#xff09;作为…...

操作系统原理与LiuJuan20260223Zimage性能优化深度解析

操作系统原理与LiuJuan20260223Zimage性能优化深度解析 1. 引言 在AI模型部署和推理过程中&#xff0c;很多人只关注算法本身的优化&#xff0c;却忽略了底层操作系统对性能的关键影响。实际上&#xff0c;操作系统的资源管理策略、内存分配机制和进程调度方式&#xff0c;直…...

Neovim美化踩坑实录:从乱码图标到完美主题,我的init.lua配置全解析(附避坑清单)

Neovim美化踩坑实录&#xff1a;从乱码图标到完美主题&#xff0c;我的init.lua配置全解析&#xff08;附避坑清单&#xff09; 第一次打开Neovim时&#xff0c;满屏的方块符号和刺眼的默认配色让我差点以为打开了某个古董终端。作为从VSCode转投Neovim的开发者&#xff0c;我原…...

数字古籍获取:高效工具使用指南

数字古籍获取&#xff1a;高效工具使用指南 【免费下载链接】bookget bookget 数字古籍图书下载工具 项目地址: https://gitcode.com/gh_mirrors/bo/bookget 当你在研究清代方志时&#xff0c;面对图书馆网站繁琐的翻页操作和分散的资源链接&#xff0c;是否渴望一种能批…...