思路:

题目描述从左到右一层一层的进行遍历,就遍历二叉树的这种题我更喜欢用递归来做,

我使用java来做的,结果集是两个List集合,那么我们是不是应该每到新的一层就给这个结果集添加一个内部的List,那么怎么判断左右节点在同一层级呢?我想的就是模拟一个层级的参数为k,root的左右节点都属于一个层级,那么递归的时候对应的就是k+1;以此类推,拿到结果。

代码:

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {List<List<Integer>> res = new ArrayList<>();public List<List<Integer>> levelOrder(TreeNode root) {level(root, 0);return res;}public void level(TreeNode root, int k) {if (root == null)return;if (k == res.size())res.add(new ArrayList<>());res.get(k).add(root.val);level(root.left, k + 1);level(root.right, k + 1);}
}

 

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

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

相关文章

二种MVCC对比分析

文章目录 前言MVCCInnodb的MVCC版本链回滚与提交可见性判断 Oracle的MVCC版本链 PostgreSQL的MVCCMVCC实现可见性判断特点 前言 ​ MVCC&#xff08;多版本并发控制&#xff0c;Multi-Version Concurrency Control&#xff09;是一种数据库管理系统&#xff08;DBMS&#x…

FAST-LIO笔记

1.FAST-LIO FAST-LIO 是一个计算效率高、鲁棒性强的激光-惯性里程计系统。该系统通过紧耦合的迭代扩展卡尔曼滤波器&#xff08;IEKF&#xff09;将激光雷达特征点与IMU数据进行融合&#xff0c;使其在快速运动、噪声较大或环境复杂、存在退化的情况下仍能实现稳定的导航。 1…

C++并发编程完全指南:从基础到实践

在当今多核处理器普及的时代&#xff0c;充分利用硬件并发能力已成为高性能编程的关键。C11引入的现代并发编程支持使得开发者能够以标准化、可移植的方式编写多线程程序。本文将全面介绍C并发编程的各个方面&#xff0c;从基础概念到实际应用&#xff0c;帮助您掌握这一重要技…

如何使用docker配置ros-noetic环境并使用rviz,gazebo

参考链接&#xff1a;【Ubuntu】Docker中配置ROS并可视化Rviz及Gazebo_docker ros-CSDN博客 前言&#xff1a; 其实这个东西是相当必要的&#xff0c;因为我们有时候需要在一台电脑上跑好几个项目&#xff0c;每个项目都有不同的依赖&#xff0c;这些依赖冲突搞得人头皮发麻&…

使用 Java 11 的 HttpClient 处理 RESTful Web 服务

在现代 Web 开发中,与 RESTful Web 服务交互是一项核心任务。Java 作为一种广泛使用的编程语言,提供了多种处理 HTTP 请求的方法。在 Java 11 之前,开发者通常使用 HttpURLConnection 或第三方库(如 Apache HttpClient)。然而,这些方法要么过于底层,要么需要额外依赖。J…

JVM——垃圾回收

垃圾回收 在Java虚拟机&#xff08;JVM&#xff09;的自动内存管理中&#xff0c;垃圾回收&#xff08;Garbage Collection, GC&#xff09;是其核心组件之一。它负责回收堆内存中不再使用的对象所占用的内存空间&#xff0c;以供新对象的分配使用。下面我们将深入探讨JVM中的…

经典密码学算法实现

# AES-128 加密算法的规范实现&#xff08;不使用外部库&#xff09; # ECB模式S_BOX [0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B,0xFE, 0xD7, 0xAB, 0x76, 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0,0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0x…

追踪大型语言模型的思想(下)(来自针对Claude的分析)

多步推理 正如我们上面所讨论的&#xff0c;语言模型回答复杂问题的一种方式就是简单地记住答案。例如&#xff0c;如果问“达拉斯所在州的首府是哪里&#xff1f;”&#xff0c;一个“机械”的模型可以直接学会输出“奥斯汀”&#xff0c;而无需知道德克萨斯州&#xff0c;达拉…

【Hive入门】Hive增量数据导入:基于Sqoop的关系型数据库同步方案深度解析

目录 引言 1 增量数据导入概述 1.1 增量同步与全量同步对比 1.2 增量同步技术选型矩阵 2 Sqoop增量导入原理剖析 2.1 Sqoop架构设计 2.2 增量同步核心机制 3 Sqoop增量模式详解 3.1 append模式&#xff08;基于自增ID&#xff09; 3.2 lastmodified模式&#xff08;基…

[Windows] 蓝山看图王 1.0.3.21021

[Windows] 蓝山看图王 链接&#xff1a;https://pan.xunlei.com/s/VOPejo0dRLFd38dbpR7XA6djA1?pwddq9v# 由蓝山软件出品的一款免费高清看图软件&#xff0c;支持快速查看高清大图&#xff0c;支持大部分市面图片格式。 软件特点 1、体积小巧&#xff0c;图像显示效果清晰…

通配符 DNS 记录:应用场景与相关风险

随着组织的互联网基础设施不断扩展&#xff0c;其对配置、设置和决策的需求也随之增加——从选择一个可靠的名称服务器&#xff0c;到确定合适的 DNS 记录类型以及设置合适的 TTL&#xff08;生存时间&#xff09;值。其中一项关键决策就是是否要创建通配符 DNS 记录&#xff0…

快速上手知识图谱开源库pykeen教程指南(一)

文章目录 1 前情提要1.1 AmpliGraph 和 PyKEEN 对比介绍1.2 TransE、ConvE、RotatE几款模型的差异 2 直接上案例2.1 数据载入&#xff1a;TriplesFactory2.2 模型训练2.2.1 训练信息2.2.2 TransE模型可以降维实体、关系的关系 2.3 模型保存与加载、评估2.3.1 保存与模型加载2.3…

飞搭系列 | 获取弹窗数据,轻松实现回填

前言 飞搭低代码平台&#xff08;FeiDa&#xff0c;以下简称“飞搭”&#xff09;&#xff0c;为企业提供在线化、灵活的业务应用构建工具&#xff0c;支持高低代码融合&#xff0c;助力企业低门槛、高效率和低成本地快速应对市场变化&#xff0c;加速复杂业务场景落地。 概要…

Linux如何安装AppImage程序

Linux如何安装AppImage程序 文章目录 Linux如何安装AppImage程序 在 Linux 中&#xff0c;.AppImage 是一种便携式的应用程序格式&#xff0c;无需安装即可运行。 1.赋予该文件可执行权限 可以使用下列命令&#xff0c;赋予可执行权限 # 举个例子 chmod x /path/to/MyApp.App…

云硬盘的原理

云硬盘是云计算环境中的一种存储服务&#xff0c;其原理主要涉及数据存储、数据冗余与容错、性能优化以及数据安全等方面&#xff0c;以下是具体介绍&#xff1a; 数据存储 逻辑卷管理&#xff1a;云硬盘通常会将物理存储设备划分为多个逻辑卷&#xff0c;每个逻辑卷可以独立地…

使用 pgrep 杀掉所有指定进程

使用 pgrep 杀掉所有指定进程 pgrep 是一个查找进程 ID 的工具&#xff0c;结合 pkill 或 kill 命令可以方便地终止指定进程。以下是几种方法&#xff1a; 方法1&#xff1a;使用 pkill&#xff08;最简单&#xff09; pkill 进程名例如杀掉所有名为 “firefox” 的进程&…

堆排序(算法题)

#include <bits/stdc.h> using namespace std;const int N 100010; // 堆数组的最大容量 int h[N], s; // h[]存储堆元素&#xff0c;s表示当前堆的大小// 下沉操作&#xff1a;调整以i为根的子树&#xff0c;维护小顶堆性质 void down(int i) {int t i; /…

极狐GitLab 如何将项目共享给群组?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 共享项目和群组 (BASIC ALL) 在极狐GitLab 16.10 中&#xff0c;更改为在成员页面的成员选项卡上显示被邀请群组成员&#xf…

用 CodyBuddy 帮我写自动化运维脚本

我正在参加CodeBuddy「首席试玩官」内容创作大赛&#xff0c;本文所使用的 CodeBuddy 免费下载链接&#xff1a;腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴”。 #CodeBuddy首席试玩官 背景 我个人是非常喜欢 Jenkins 自动化部署工具的&#xff0c;之前都是手写 Jenki…

基于windows安装MySQL8.0.40

基于windows安装MySQL8.0.40 基于windows 安装 MySQL8.0.40&#xff0c;解压文件到D:\mysql-8.0.40-winx64 在D:\mysql-8.0.40-winx64目录下创建my.ini文件&#xff0c;并更新一下内容 [client] #客户端设置&#xff0c;即客户端默认的连接参数 # 设置mysql客户端连接服务…