二叉树层序遍历的2种方法

方法1使用1个队列
在这里插入图片描述

class Solution {//使用一个队列,如果一个队列可以解决,那么就不需要使用2个数组//要最下面一层的最左边的结点,那么就先入右结点再入左结点public int findBottomLeftValue(TreeNode root) {TreeNode node = root;Deque<TreeNode> dq = new ArrayDeque<>();dq.offer(root);while(dq.size()>0){node = dq.poll();if (node.right != null) dq.add(node.right);if (node.left != null)  dq.add(node.left);}return node.val;}
}

方法2使用2个数组
在这里插入图片描述

class Solution {//使用2个数组,cur放当前层节点,next放下一层的结点,最后通过ans.size()%2>0来决定是否进行倒置public List<List<Integer>> zigzagLevelOrder(TreeNode root) {if(root==null) return new ArrayList<>();List<List<Integer>> ans = new ArrayList<>();List<TreeNode> cur = List.of(root);while(cur.size()>0){List<TreeNode> next = new ArrayList<>();List<Integer> vals = new ArrayList<>();for(TreeNode node : cur){vals.add(node.val);if(node.left!=null) next.add(node.left);if(node.right!=null) next.add(node.right);}cur = next;if(ans.size()%2>0) Collections.reverse(vals);ans.add(vals);}return ans; }
}

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

表格HTML

//test.html <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>表格与CSS分开示例</tit…

openEuler 22.03 LTS 安装JDK 8(亲测很简单的安装办法)

Oracle JDK从2019年4月16日起开始商业用途统统收费&#xff0c;也就是说只能使用2019年1月15发布的JDK 8u202免费版本&#xff0c;没有订阅&#xff08;交钱&#xff09;是没安全更新可用的&#xff0c;所以只能使用替代品OpenJDK、AdoptOpenJDK等发布版&#xff0c;那为什么不…

2024开学季好物推荐,这些开学必备好物不要错过!

又迎来了充满活力与梦想的开学季。不论是满怀憧憬步入新校园的新生&#xff0c;还是蓄势待发迎接新挑战的老生&#xff0c;为了帮助学生们更好地融入新学期的学习与生活中&#xff0c;我们特别策划了这份开学必备好物推荐指南。这里不仅汇集了能够提升学习效率的实用工具&#…

怎么快速批量生成静态二维码呢?批量静态码的3步在线生成技巧

怎么快速批量生成静态二维码呢&#xff1f;现在日常生活中的很多物品都会自己对应的二维码&#xff0c;扫码后可以查看相关物品的编码&#xff0c;那么怎么给一批物品批量生成对应的二维码呢&#xff1f;下面来教大家使用二维码批量生成工具制作静态码的方式&#xff0c;可以通…

2024/9/19 408大题专训之五段式指令流水线题型总结

结构冒险&#xff1a; 指令步骤&#xff1a;IF(取指令) ID(译码) EX&#xff08;执行、计算&#xff09;M&#xff08;访存&#xff09;WB&#xff08;写回&#xff09; 其中if和m都需要访问主存取指令和数据&#xff0c;如何解决呢&#xff1f;可以把cache分成数据cache指令…

【计网】从零开始使用TCP进行socket编程 ---服务端业务模拟Xshell

最糟糕的情况&#xff0c; 不是你出了错&#xff0c; 而是你没有面对出错的勇气。 从零开始使用TCP进行socket编程 1 通信过程的多版本实现1.1 多进程版本1.2 多线程版本 2 服务端业务模拟Xshell2.1 整体框架设计2.2 Command类设计 1 通信过程的多版本实现 在前一篇的文章…

内核是如何接收网络包的

1、数据如何从网卡到网络协议栈 1.1内核收包的过程 1、数据帧从外部网络到达网卡 2、网卡把数据帧从自己的缓存DMA(拷贝到)和内核共有的RingBuffer上 3、网卡发出硬中断通知CPU 4、CPU响应硬中断&#xff0c;简单处理后发出软中断 5、k’softirqd线程处理软中断&#xff0c;调…

ATGM331C-5T杭州中科微BDS/GNSS全星座定位授时模块应用领域

ATGM331C-5T 系列模块全部支持辅助 GNSS &#xff08;AGNSS&#xff09;功能&#xff1b;支持精确秒脉冲输出&#xff0c;脉冲上升沿与 UTC 时间对齐。 产品选型&#xff1a; 性能指标&#xff1a; 出色的定位导航功能&#xff0c;支持 BDS/GPS 卫星导航系统的单系统授时&#…

基于SpringBoot+Vue+MySQL的电子产品手机商城系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着科技的飞速发展&#xff0c;电子商务已成为现代生活不可或缺的一部分。尤其是电子产品领域&#xff0c;手机作为人们日常生活中必不可少的通讯与娱乐工具&#xff0c;其市场需求持续增长。为了满足广大消费者的购物需求&…

ssrf攻击fastcgi复现及环境搭建

目录 一、环境 二、开始操作 一、环境 网上自己找vulhub-master.zip&#xff0c;我这里没用docker&#xff0c;本地自己搭建的 二、开始操作 很明显的ssrf漏洞 很明显我们之前的协议file dict 很明显9000端口是开放的 我们还是用gopherus生成一下 我们环境机上很明显有PEAR…

git报错:无法读取远程分支 ‘origin‘ does not appear to be a git repository

问题分析 push上传的时候本地分支和远程分支断开连接 所以重新链接即可 排查问题 1. 查看是否有分支&#xff0c;检查分支是否正确 git branch -v 2. 查看连接是否断开&#xff0c;断开无内容展示 查看远程仓库详细信息&#xff0c;可看到仓库地址 git remote -v 解决…

华为OD机试 - 打印机队列 - 优先队列(Python/JS/C/C++ 2024 E卷 200分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

数据恢复免费版工具大比拼,哪款才是你的“救星”?

在数字时代&#xff0c;数据的重要性不言而喻&#xff1b;如果不幸遇到了数据丢失的问题&#xff0c;不要慌张&#xff0c;我这里有四款免费的数据恢复工具推荐给你&#xff1b;希望能帮助你找到最适合自己的那款“救星”&#xff01; 一、福昕数据恢复 直通车&#xff08;粘…

避免高额开发费用,如何轻松开发类似喜马拉雅的听书平台?

近年来&#xff0c;随着移动互联网的飞速发展&#xff0c;音频市场迅猛增长&#xff0c;像喜马拉雅这样的听书APP已经成为很多人生活中的重要娱乐和学习工具&#xff0c;吸引了大量用户。不过&#xff0c;很多创业者在尝试开发类似APP时&#xff0c;往往遇到开发费用高、时间长…

【已解决】Uncaught RangeError: Maximum depth reached

【已解决】Uncaught RangeError: Maximum depth reached 在JavaScript编程中&#xff0c;Uncaught RangeError: Maximum depth reached 是一个常见的错误&#xff0c;通常与递归调用深度过大有关。递归是一种编程技巧&#xff0c;它允许函数直接或间接地调用自身。然而&#xf…

oracle行转列函数 wm_concat

wm_concat()函数是oracle中独有的,mysql中有一个group_concat()函数。 这两个函数的作用是相同的&#xff0c;它们的功能是&#xff1a;实现行转列功能&#xff08;就是多行整合成一列&#xff0c;例如一个工单里有多个项目&#xff0c;工单号是一样的&#xff0c;则可以把多个…

ozon买家网址是什么,跨境电商ozon买家网址

在网购的世界里&#xff0c;每一个平台都像是一座宝藏岛&#xff0c;等待着我们去探索、去发现。而提到跨境电商&#xff0c;不得不提的一个名字就是Ozon&#xff0c;它对于许多跨境购物爱好者来说&#xff0c;简直就是打开国际购物大门的金钥匙。那么&#xff0c;今天咱们就来…

Win11|Win10电脑如何卸载软件?这3种方法帮你卸载烦人的程序。

引言 最近有粉丝问我,电脑不小心被家里的小伙子装了一大堆游戏软件,附带了很多垃圾软件,导致电脑卡顿、蓝屏异常。怎么把这些软件卸载呢?下面我将为大家分享3种卸载Windows电脑程序的方法: 解决办法: 方法1. 通过“设置”卸载: 1. 点击桌面左下角的“开始”菜单,然…

log4j2线程级动态日志级别

详见 参考 着重说明&#xff1a; DynamicThresholdFilter&#xff1a; 配置长这样&#xff1a;配置解释链接 <DynamicThresholdFilter key"logLevel" defaultThreshold"ERROR" onMatch"ACCEPT" onMismatch"DENY"><KeyVa…

企业网络安全关键:防御措施和应急响应

感谢浪浪云支持发布 浪浪云活动链接 &#xff1a;https://langlangy.cn/?i8afa52 文章目录 什么是网络安全常见的网络安全威胁病毒和恶意软件网络钓鱼拒绝服务攻击中间人攻击社会工程学 基本的网络安全措施强密码策略双因素认证安装和更新防病毒软件定期备份 高级的网络安全方…