力扣每日练习3.14

103. 二叉树的锯齿形层序遍历

给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。

解题思路:模仿层序遍历的方法,需要加一个层数指示器,当层数为偶数,则反转列表。


class Solution:def zigzagLevelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:if not root:return []# 结果res = []# 队列,存储下一层的节点queue = [root]# 指示方向,统计层数count = 1while queue:cur_l = [] # 当前层的节点结果cur_l_size = len(queue)# 遍历当前层节点for _ in range(cur_l_size):node = queue.pop(0)cur_l.append(node.val)if node.left:queue.append(node.left)if node.right:queue.append(node.right)# 如果是偶数层,则反转if count % 2 == 0:cur_l = cur_l[::-1]res.append(cur_l)count+=1return res

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

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

相关文章

蓝桥杯刷题(七)

[蓝桥杯 2023 省 A] 平方差 题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示【样例说明】【评测用例规模与约定】 代码题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提示 代码题目描述输入格式输出格式样例 #1样例输入 …

Ansible自动化运维Inventory与Ad-Hoc

前言 自动化运维是指利用自动化工具和技术来简化、自动化和优化IT基础设施的管理和运维过程,从而提高效率、降低成本,并减少人为错误。在当今复杂的IT环境中,自动化运维已经成为许多组织和企业提高生产力和保证系统稳定性的重要手段。Ansibl…

[数据集][目标检测]零售柜零食检测数据集VOC+YOLO格式5422张113类

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):5422 标注数量(xml文件个数):5422 标注数量(txt文件个数):5422 标注…

Docker简介与安装

简介 用来快速构建、运行、管理应用的工具简单说,帮助我们部署项目以及项目所依赖的各种组件典型的运维工具 安装 1.卸载旧版 首先如果系统中已经存在旧的Docker,则先卸载: yum remove docker \docker-client \docker-client-latest \dock…

c++面试整理(二)

一、new和malloc的区别 1.属性: new属于c运算符,编译器支持就可以,makkoc是c的标准库函数,需要引用头文件才可以调用。 2.参数和返回值 malloc分配内存时需要指定内存大小,返回值是void*的指针,需要强制转换 new根…

某小型外包—ETL工程师面试

没有包装简历,面试感觉跟聊天一样,会就是会,不会就是不会。 1.datax和sqoop的对比,优点与缺点 1.1 datax的组件 2.sql的执行顺序。 select a.* ,b* from a left join b on a.id b.id 先join 再 select。 3.数据采集到数仓中…

数字逻辑-时序逻辑电路二——沐雨先生

一、实验目的 (1)熟悉计数器的逻辑功能及特性。 (2)掌握计数器的应用。 (3)掌握时序逻辑电路的分析和设计方法。 二、实验仪器及材料 三、实验原理 1、集成4位计数器74LS161(74LS160&#…

自动控制原理--matlab/simulink建模与仿真

第一讲 自动控制引论 第二讲 线性系统的数学模型 第三讲 控制系统的复域数学模型(传递函数) 第四讲 控制系统的方框图 /video/BV1L7411a7uL/?p35&spm_id_frompageDriver pandas, csv数据处理 numpy,多维数组的处理 Tensor,PyTorch张量 工作原理图…

浏览器网页上如何播放dash视频、hls(m3u8)视频和flv格式视频?

前言 想要在网页上面播放dash视频、hls(m3u8)视频和flv格式视频需要对应的转封装库,而dash.js、Hls.js和flv.js三个库提供了这三个视频格式转封装和渲染画面和音频播放的能力。 实现原理 dash.js、Hls.js和flv.js这三个库他们都使用了转封装技术将视频源是dash、hls(m3u8)和…

有来团队后台项目-解析10

axios 安装 pnpm i axios创建文件 src 目录下创建 utils 文件夹,utils 文件夹下创建request.ts src 目录下创建store 文件夹,文件夹下创建index.ts ,创建modules 文件夹 编写request.ts // 引入axios,引入请求拦截器类型约束…

数据仓库为什么要分层建设?每一层的作用是什么?

在数字化时代,数据已成为企业最宝贵的资产之一。为了更好地管理和利用这些数据,许多企业都建立了数据仓库。然而,数据仓库并非简单的数据存储工具,而是一个复杂的数据处理和分析系统。其中,分层建设是数据仓库设计的重…

稀碎从零算法笔记Day17-LeetCode:有效的括号

题型:栈 链接:20. 有效的括号 - 力扣(LeetCode) 来源:LeetCode 题目描述(红字为笔者添加) 给定一个只包括 (,),{,},[,] 的字符串 …

SQLiteC/C++接口详细介绍之sqlite3类(六)

快速前往文章列表:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍之sqlite3类(五) 下一篇:SQLiteC/C接口详细介绍之sqlite3类(七) 19. sqlite3_changes与sqlite3_changes64 是SQLite中用…

【MyBatis-Plus】逻辑删除、乐观锁、防全表更新和删除实现 MyBatisX插件 高级扩展

文章目录 一、逻辑删除实现二、乐观锁实现2.1 悲观锁和乐观锁场景和介绍2.2 具体技术和方案:2.3 版本号乐观锁技术的实现流程2.4 使用mybatis-plus数据使用乐观锁 三、防全表更新和删除实现三、代码生成器(MyBatisX插件) 一、逻辑删除实现 物理删除:真实删除&#…

npm-软件包管理器

初始化清单文件:npm init -y(得到package.json文件) 下载软件包:npm i 软件名称 使用软件包 npm i 会根据package.json中记录中的所有软件包下载 nodemon全局软件包:作用在本机所有的项目,封装命令和工具&#xff…

Flink on Yarn安装配置

前言 Apache Flink,作为一个开源的分布式处理引擎,近年来在大数据处理领域崭露头角,其独特的流处理和批处理一体化模型,使得它能够在处理无界和有界数据流时展现出卓越的性能。本文旨在对Flink进行简要的前言性介绍,以…

Oracle登录错误ERROR: ORA-01031: insufficient privileges解决办法

这个问题困扰了我三个星期,我在网上找的解决办法: 1.控制面板->管理工具->计算机管理->系统工具->本地用户和组->ORA_DBA组。 但我电脑上根本找不到。 2.在oracle安装目录下找到oradba.exe运行。 最开始我都不到这个oradba.exe文件在哪…

云计算 3月11号 (NFS远程共享存储及vsftpd配置)

构建NFS远程共享存储 一、NFS介绍 文件系统级别共享(是NAS存储) --------- 已经做好了格式化,可以直接用。 速度慢比如:nfs,sambaNFS NFS:Network File System 网络文件系统,NFS 和其他文件…

(008)Unity StateMachineBehaviour的坑

文章目录 StateMachineBehaviour同名函数的调用问题StateMachineBehaviour 的 OnState*、OnStateMachine* 的区别 StateMachineBehaviour同名函数的调用问题 1.如果脚本中,两个同名的函数都存在,那么两个函数都会被调用;如果只有其中一个同名…

【趣味学算法】06_字符串是否合法

注: 本系列仅为个人学习笔记,学习内容为《算法小讲堂》(视频传送门),通俗易懂适合编程入门小白,需要具备python语言基础,本人小白,如内容有误感谢您的批评指正 要写个程序判断给定的…