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

L50--- 104. 二叉树的最大深度(深搜)---Java版

1.题目描述

二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
在这里插入图片描述

2.思路

这个二叉树的结构如下:
在这里插入图片描述

根节点 1
左子节点 2
右子节点 3
左子节点 4
计算过程
从根节点 1 开始计算:
计算左子树的最大深度:
根节点 2:
左子树为空,深度为0。
右子树为空,深度为0。
所以节点 2 的深度为 Math.max(0, 0) + 1 = 1。
计算右子树的最大深度:
根节点 3:
计算左子树的最大深度:
根节点 4:
左子树为空,深度为0。
右子树为空,深度为0。
所以节点 4 的深度为 Math.max(0, 0) + 1 = 1。
右子树为空,深度为0。
所以节点 3 的深度为 Math.max(1, 0) + 1 = 2。
最后,根节点 1 的深度为 Math.max(1, 2) + 1 = 3。

3.代码实现

/*** 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 {public int maxDepth(TreeNode root) {if(root==null){return 0;}int leftDepth=maxDepth(root.left);int rightDepth=maxDepth(root.right);return Math.max(leftDepth,rightDepth)+1;}
}

相关文章:

L50--- 104. 二叉树的最大深度(深搜)---Java版

1.题目描述 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 2.思路 这个二叉树的结构如下: 根节点 1 左子节点 2 右子节点 3 左子节点 4 计算过程 从根节点 1 开始计算: 计算左子树的最大深度: 根节点 2&#xf…...

Linux 中 “ 磁盘、进程和内存 ” 的管理

在linux虚拟机中也有磁盘、进程、内存的存在。第一步了解一下磁盘 一、磁盘管理 (1.1)磁盘了解 track( 磁道 ) :就是磁盘上的同心圆,从外向里,依次排序1号,2号磁盘........等等。…...

test_pipeline

test_pipeline 是一个测试管道(test pipeline)的定义。 在计算机视觉任务中,通常需要对输入图像进行一系列的预处理操作,以便将其适配到模型的输入要求或提高模型的性能。测试管道就是用于定义这些预处理操作的一系列步骤。 在给…...

使用甲骨文云arm服务器安装宝塔时nginx无法卸载

使用甲骨文云arm服务器安装宝塔 其他环境都能安装上 唯独nginx安装完不运行 卸载了几次以后还无法卸载了. 修复 重启都不行. 差点就重建主机了. 最后靠下面的命令 就卸载掉了 然后重装就把nginx安装好了 mv /www/server/nginx/sbin/nginx /tmp/nginx_back mv /etc/in…...

C++青少年简明教程:C++的指针入门

C青少年简明教程:C的指针入门 说到指针,就不可能脱离开内存。了解C的指针对于初学者来说可能有些复杂,我们可以试着以一种简单、形象且易于理解的方式来解释: 首先,我们可以将计算机内存想象成一个巨大的有许多格子的…...

Apache Doris 基础 -- 数据表设计(分层存储)

1、应用场景 未来一个重要的用例是类似于ES日志存储,其中日志场景中的数据是根据日期分割的。许多数据都是查询不频繁的冷数据,因此需要降低此类数据的存储成本。考虑到节约成本: 来自不同厂商的常规云磁盘的定价比对象存储更昂贵。Doris 集群实际在线…...

使用Spring Boot设计一套BI系统

商业智能(Business Intelligence,简称BI)系统是一种将数据转化为可操作信息,帮助企业进行决策支持的技术与工具的集合。随着大数据时代的到来,BI系统在企业中的应用变得越来越广泛。本文旨在探讨如何使用Spring Boot框…...

2024.6.12总结

今天是排毕业照的日子,拍照的时候并没有太过兴奋。后来受到主管说明天就能签offer了,这才喜极而泣。 自从得知自己面试通过后,我是非常高兴,开始幻想着今后的生活。可是,后面在等offer的过程中,我是无比的…...

1027 - 求任意三位数各个数位上数字的和

问题描述 对于一个任意的三位自然数 x ,编程计算其各个数位上的数字之和 S 。 输入 输入一行,只有一个整数 x(100≤x≤999) 。 输出 输出只有一行,包括 1 个整数。 样例 输入 123 输出 6 以下是C实现的代码: 代码1 #…...

K8s 卷快照类

卷快照类 卷快照类 这个警告信息通常出现在使用 kubectl 删除 Kubernetes 集群资源时,如果尝试删除的是集群作用域(cluster-scoped)的资源,但指定了命名空间(namespace),就会出现这个警告。 集…...

从零手写实现 nginx-23-directive IF 条件判断指令

前言 大家好,我是老马。很高兴遇到你。 我们为 java 开发者实现了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何处理的,可以参考我的另一个项目: 手写从零实现简易版 tomcat minicat 手写 nginx 系列 …...

08_基于GAN实现人脸图像超分辨率重建实战_超分辨基础理论

1. 超分辨的概念与应用 我们常说的图像分辨率指的是图像长边像素数与图像短边像素数的乘积,比如iPhoneX手机拍摄照片的分辨率为 4032px3024px,为1200万像素。 显然,越高的分辨率能获得更清晰的成像。与之同时,分辨率越高也意味着更大的存储空间,对于空间非常有限的移动设…...

React.ReactElement 与 React.ReactNode

React.ReactNode 在 JSX 中作为子元素传递的所有可能类型的并集&#xff0c;这是对子元素的一个非常宽泛的定义。 <RNode><p>One element</p></RNode><RNode><><p>Fragments for</p><p>More elements</p></&g…...

深度解析服务发布策略之蓝绿发布

目录 什么是蓝绿发布 蓝绿发布的优点 蓝绿发布的缺点 蓝绿发布的实现步骤 小结 在软件开发和运维中&#xff0c;发布新版本是一个风险较高的操作。为了降低风险&#xff0c;提高发布的稳定性和可靠性&#xff0c;通常会采取一系列的技术策略。其中蓝绿发布&#xff08;Blu…...

【Mysql】 深入理解MySQL的执行计划

文章目录 前言一、字段解释二、代码实现三、总结 前言 在日常的数据库操作中&#xff0c;我们经常会遇到一些复杂的查询&#xff0c;这些查询可能会涉及到多个表的联合查询&#xff0c;或者是一些复杂的条件筛选。为了更好地理解和优化这些查询&#xff0c;了解MySQL的执行计划…...

说下你对Spring IOC 的理解

说下你对Spring IOC 的理解 1. Spring IOC是一个管理对象之间依赖关系的容器&#xff0c;它实现了依赖注入技术&#xff0c;可以解决传统的紧耦合问题&#xff0c;降低了项目维护难度。 2. Spring IOC将对象之间的依赖关系交由容器来管理对象&#xff0c;开发者只需要告诉容器…...

前缀和算法:算法秘籍下的数据预言家

✨✨✨学习的道路很枯燥&#xff0c;希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一. 前缀和算法的介绍 二、前缀和例题 2.1 【模版】前缀和 2.2 【模板】二维前缀和 2.3 寻找数组的中间下标 2.4 除自身以外数组的乘积 2.5 和为k的子数组 2.6 和可被k整除的子数组 2.7 …...

基于PointNet / PointNet++深度学习模型的激光点云语义分割

一、场景要素语义分割部分的文献阅读笔记 1.1 PointNet PointNet网络模型开创性地实现了直接将点云数据作为输入的高效深度学习方法&#xff08;端到端学习&#xff09;。最大池化层、全局信息聚合结构以及联合对齐结构是该网络模型的三大关键模块&#xff0c;最大池化层解决了…...

LabVIEW调用DLL时需注意的问题

在LabVIEW中调用DLL&#xff08;动态链接库&#xff09;是实现与外部代码集成的一种强大方式&#xff0c;但也存在一些常见的陷阱和复杂性。本文将从参数传递、数据类型匹配、内存管理、线程安全、调试和错误处理等多个角度详细介绍LabVIEW调用DLL时需要注意的问题&#xff0c;…...

时序预测 | MATLAB实现TCN-Attention自注意力机制结合时间卷积神经网络时间序列预测

时序预测 | MATLAB实现TCN-Attention自注意力机制结合时间卷积神经网络时间序列预测 目录 时序预测 | MATLAB实现TCN-Attention自注意力机制结合时间卷积神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.MATLAB实现TCN-Attention自注意力机制结合时…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区&#xff08;Partitioning&#xff09;是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分&#xff08;分区&#xff09;可以独立存储、管理和优化&#xff0c;…...