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

【LeetCode】102. 二叉树的层序遍历、107. 二叉树的层序遍历 II

 作者:小卢

专栏:《Leetcode》

喜欢的话:世间因为少年的挺身而出,而更加瑰丽。                                  ——《人民日报》


 102. 二叉树的层序遍历

102. 二叉树的层序遍历

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)

 示例:

思路:

我们这里利用一个队列q和levelsize(代表当前层数据的个数)

一开始我们先压入一个数值到q,并且levelsize为1,当q不为空会时,我们循环levesize次,每次取队头,取完后再判断取的元素有没有左右节点,有的话就压入,然后结束循环的时候更新levelsize

代码:

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

 107. 二叉树的层序遍历 II

 107. 二叉树的层序遍历 II

题目: 

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

示例:

思路:

和上题一样,就结尾多一个逆置。

代码:

class Solution {
public:vector<vector<int>> levelOrderBottom(TreeNode* root) {queue<TreeNode*>q;int levelsize = 0;if (root){q.push(root);levelsize = 1;}vector<vector<int>>vv;while (!q.empty()){vector<int>v;while (levelsize--){TreeNode* front = q.front();q.pop();v.push_back(front->val);if (front->left){q.push(front->left);}if (front->right){q.push(front->right);}}levelsize = q.size();vv.push_back(v);}reverse(vv.begin(),vv.end());return vv;}
};

相关文章:

【LeetCode】102. 二叉树的层序遍历、107. 二叉树的层序遍历 II

作者&#xff1a;小卢 专栏&#xff1a;《Leetcode》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 102. 二叉树的层序遍历 102. 二叉树的层序遍历 给你二叉树的根节点 root &#xff0c;返回其节…...

HTML详解连载(2)

HTML详解连载&#xff08;2&#xff09; 专栏链接 [link](http://t.csdn.cn/xF0H3)下面进行专栏介绍 开始喽超链接作用代码示例解释经验分享 音频标签代码示例注意强调 视频标签代码示例注意强调 列表作用&#xff1a;布局内容排列整齐的区域。分类&#xff1a;无序列表&#x…...

qt事件系统源码-----定时器

qt定时器的使用一般有以下几种方式&#xff1a; 1、直接使用QTimer对象&#xff0c;绑定定时器的timeout信号&#xff1b; 2、使用QTimer的静态方法singleshot方法&#xff0c;产生一个一次性的定时事件 3、在QObject子类中&#xff0c;调用startTimer方法&#xff0c;产生定…...

【Android】ViewBinding+DataBinding+MVVM新手快速上手

为什么写这篇博客 网上大部分博客&#xff0c;代码量都比较大&#xff0c;把实际的业务都代入进去了 这篇博客的目的&#xff0c;就是为了讲解基本原理和使用思路&#xff0c;然后给出一个最简单的Demo 这里不讲解具体用法&#xff0c;那样篇幅会太长&#xff0c;直接看Demo…...

生成式人工智能模型:提升营销分析用户体验

使用生成式人工智能来改善分析体验&#xff0c;使业务用户能够询问有关我们数据平台中可用数据的任何信息。 在本文中&#xff0c;我们将解释如何使用新的生成式人工智能模型 ( LLM ) 来改善业务用户在我们的分析平台上的体验。假设我们为零售销售经理提供 Web 应用程序或移动应…...

【并发编程】无锁环形队列Disruptor并发框架使用

Disruptor 是苹国外厂本易公司LMAX开发的一个高件能列&#xff0c;研发的初夷是解决内存队列的延识问顾在性能测试中发现竟然与10操作处于同样的数量级)&#xff0c;基于Disruptor开发的系统单线程能支撑每秒600万订单&#xff0c;2010年在QCn演讲后&#xff0c;获得了业界关注…...

【C语言】初阶指针详解

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解C语言中令人头疼的指针&#xff0c;如果大家觉得我写的不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 使用的是VS2019编译器&#xff0c;默认为32位平台 文章目录 ①指针是什么②指针定义与…...

ElasticSearch:项目实战(1)

es环境搭建参考&#xff1a;ElasticSearch&#xff1a;环境搭建步骤_Success___的博客-CSDN博客 需求&#xff1a; 用户输入关键可搜索文章列表 关键词高亮显示 文章列表展示与home展示一样&#xff0c;当用户点击某一篇文章&#xff0c;可查看文章详情 思路&#xff1a; …...

React 实现文件分片上传和下载

React 实现文件分片上传和下载 在开发中&#xff0c;文件的上传和下载是常见的需求。然而&#xff0c;当面对大型文件时&#xff0c;直接的上传和下载方式可能会遇到一些问题&#xff0c;比如网络传输不稳定、文件过大导致传输时间过长等等。为了解决这些问题&#xff0c;我们…...

2023.8.13

atcoder_abc\AtCoder Beginner Contest 310\E_NAND_repeatedly //题意&#xff1a;给定一个n长度的01串&#xff0c;计算f(l,r)(l<r,l在1~n,r在1~n)的和,f的计算(ai,a(i1))运算,有0就为1,11为0 //若f(l,r)1,则f(l,r-1)为0或sr为0,即只取决于上一位的情况和当前位&#xff…...

kvm not all arguments converted during string

kylin virt-manager 远程镜像制作问题记录(not all arguments ) 项目场景&#xff1a; 服务器端安装的OS版本&#xff1a;Kylin-Server-10-SP1-Release-Build20-20210518-arm64-2021-05-18 客户端安装的OS版本&#xff1a;Kylin-Server-10-SP1-Release-Build20-20210518-x86_…...

JVM 基础

巩固基础&#xff0c;砥砺前行 。 只有不断重复&#xff0c;才能做到超越自己。 能坚持把简单的事情做到极致&#xff0c;也是不容易的。 JVM 类加载机制 JVM 类加载机制分为五个部分&#xff1a;加载&#xff0c;验证&#xff0c;准备&#xff0c;解析&#xff0c;初始化&am…...

智谷星图赵俊:让人才和区块链产业“双向奔赴”丨对话MVP

区块链产业需要什么样的人才&#xff1f;赵俊很有发言权。 赵俊是北京智谷星图科技有限公司的技术总监&#xff0c;也是FISCO BCOS官方认证讲师。他2017年接触区块链&#xff0c;随后选择人才培育领域深耕。“为区块链行业引进更多人才这件事很有价值&#xff0c;跟我的职业理…...

C# Equals()方法报错:NullReferenceException was unhandled

下面是一个C# Equals()方法的例子&#xff0c;执行时报错了 static void Main(string[] args) {string name "sandeep";string myName null;Console.WriteLine(" operator result is {0}", name myName);Console.WriteLine("Equals method result…...

Linux下C语言调用libcurl库获取天气预报信息

一、概述 当前文章介绍如何在Linux&#xff08;Ubuntu&#xff09;下使用C语言调用libcurl库获取天气预报的方法。通过HTTP GET请求访问百度天气API&#xff0c;并解析返回的JSON数据&#xff0c;可以获取指定城市未来7天的天气预报信息。 二、设计思路 【1】使用libcurl库进…...

“深入解析JVM:Java虚拟机原理和内部结构“

标题&#xff1a;深入解析JVM&#xff1a;Java虚拟机原理和内部结构 摘要&#xff1a;本文将深入解析JVM&#xff08;Java虚拟机&#xff09;的原理和内部结构。我们将从JVM的基础概念开始&#xff0c;逐步介绍其组成部分&#xff0c;包括类加载器、运行时数据区、字节码解释器…...

Arrays.asList() 返回的list不能add,remove

一.Arrays.asList() 返回的list不能add,remove Arrays.asList()返回的是List,而且是一个定长的List&#xff0c;所以不能转换为ArrayList&#xff0c;只能转换为AbstractList 原因在于asList()方法返回的是某个数组的列表形式,返回的列表只是数组的另一个视图,而数组本身并没…...

命令执行漏洞

1、命令执行漏洞 1.1、简介 Django是用Python开发的一个免费开源的Web结构&#xff0c;几乎包括了Web使用方方面面&#xff0c;能够用于快速建立高性能、文雅的网站&#xff0c;Diango提供了许多网站后台开发常常用到的模块&#xff0c;使开发者可以专注于业务部分。 1.2、漏…...

Hive 中 sort by 和 order by 的区别

文章目录 数据量大小区别作用范围 在 Hive 中&#xff0c; SORT BY 和 ORDER BY 都用于对查询结果进行排序&#xff0c;但它们在实现方式和适用场景上有一些区别。 数据量大小区别 SORT BY&#xff1a; SORT BY 用于在 Hive 中对查询结果进行排序&#xff0c;它的主要特点是在…...

网络资源利用最大化:爬虫带宽优化解决方案

大家好&#xff0c;作为一名专业的爬虫程序员&#xff0c;我们都知道在爬取大量数据的过程中&#xff0c;网络带宽是一个十分宝贵的资源。如果我们不合理地利用网络带宽&#xff0c;可能会导致爬虫任务的效率低下或者不稳定。今天&#xff0c;我将和大家分享一些优化爬虫带宽利…...

用GLM-4.6V-Flash-WEB做智能助手:图文对话场景实战解析

用GLM-4.6V-Flash-WEB做智能助手&#xff1a;图文对话场景实战解析 1. 为什么选择GLM-4.6V-Flash-WEB 在智能助手领域&#xff0c;图文对话能力正成为标配。传统方案往往需要分别部署视觉模型和语言模型&#xff0c;再通过复杂管道连接&#xff0c;导致延迟高、成本大。GLM-4…...

从棋盘格到3D坐标:一文搞懂相机内参/外参/畸变参数在Ubuntu+ROS下的标定原理与实战

从棋盘格到3D坐标&#xff1a;深度解析相机标定参数体系与ROS实战应用 当我们需要让机器"看见"并理解三维世界时&#xff0c;相机标定就像是为机器视觉系统配上一副精准的眼镜。想象一下&#xff0c;当你戴上度数不匹配的眼镜时&#xff0c;世界会变得扭曲模糊——未…...

Python老师福音:用xlwings+requests自动抓取iCode学生刷题数据,解放双手

Python教学自动化&#xff1a;用xlwingsrequests打造智能刷题监控系统 每周五下午三点&#xff0c;李老师都会准时打开电脑&#xff0c;开始他耗时两小时的"数据搬运"工作——手动登录三十多名学生的编程训练平台账号&#xff0c;逐个记录他们在四个训练场的刷题进度…...

7个秘诀快速掌握RPFM:全面战争模组编辑器的终极指南

7个秘诀快速掌握RPFM&#xff1a;全面战争模组编辑器的终极指南 【免费下载链接】rpfm Rusted PackFile Manager (RPFM) is a... reimplementation in Rust and Qt5 of PackFile Manager (PFM), one of the best modding tools for Total War Games. 项目地址: https://gitco…...

Cesium与WebXR融合:从零构建VR地理空间应用

1. 为什么需要Cesium与WebXR的融合&#xff1f; 我第一次在VR头盔里看到三维地球的时候&#xff0c;整个人都惊呆了。那种站在太空俯瞰地球的沉浸感&#xff0c;完全颠覆了传统屏幕的浏览体验。但当我尝试把现有的Cesium项目移植到VR环境时&#xff0c;发现事情没那么简单——视…...

STM32CubeMX实战:5分钟为你的HAL库工程添加Modbus RTU主机功能(兼容FreeModbus从机)

STM32CubeMX实战&#xff1a;5分钟为HAL库工程集成Modbus RTU主机功能 Modbus RTU作为工业自动化领域最常用的通信协议之一&#xff0c;其简单可靠的特性使其在嵌入式系统中广泛应用。许多开发者已经熟悉使用FreeModbus实现从机功能&#xff0c;但当需要主动控制其他设备时&…...

Qwen3.5-4B-Claude-Opus应用场景:运维SOP文档自动生成与流程图提示

Qwen3.5-4B-Claude-Opus应用场景&#xff1a;运维SOP文档自动生成与流程图提示 1. 模型特性与运维场景适配 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF作为专精于结构化分析的推理模型&#xff0c;在运维自动化领域展现出独特价值。该模型通过以下特性完美匹配运维…...

避坑指南:Smart3D照片建模从导入到生成的5个关键设置(CC 10.16版)

Smart3D照片建模高阶避坑手册&#xff1a;CC 10.16版核心参数全解析 当你在深夜盯着屏幕上第7次空三计算失败的红色报错提示时&#xff0c;是否怀疑过那些被默认参数掩盖的关键设置&#xff1f;这不是又一篇照本宣科的软件教程&#xff0c;而是一位经历过237次建模失败的工程师…...

曦智科技招股:拟募资25亿港元 要做全球AI硅光芯片第一股

雷递网 乐天 4月20日光电混合算力提供商——上海曦智科技股份有限公司&#xff08;简称“曦智科技”&#xff09;今日正式启动H股全球发售计划&#xff0c;将于4月23日截止认购&#xff0c;并预计于4月28日正式以股票代码“01879.HK”挂牌上市&#xff0c;全力冲刺全球资本市场…...

内容优化:让信息更清晰、更有价值

什么是内容优化&#xff1f;我们每天都会接触大量文字、视频、图片&#xff0c;但并不是所有内容都能让人看懂、记住或产生共鸣。内容优化&#xff0c;就是把原本杂乱、模糊或冗长的信息&#xff0c;调整得更清晰、更贴合读者需求的过程。它不是简单地删减字数&#xff0c;也不…...