【刷题笔记9.24】LeetCode:二叉树最大深度
LeetCode:二叉树最大深度
1、题目描述:
给定一个二叉树 root ,返回其最大深度。
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。

二、思路与算法
如果我们知道了左子树和右子树的最大深度 lll 和 rrr,那么该二叉树的最大深度即为
max(l,r)+1
而左子树和右子树的最大深度又可以以同样的方式进行计算。因此我们可以用「深度优先搜索」的方法来计算二叉树的最大深度。具体而言,在计算当前二叉树的最大深度时,可以先递归计算出其左子树和右子树的最大深度,然后在计算出当前二叉树的最大深度。递归在访问到空节点时退出。
1. 先求出左子树最大深度,
2. 在求出右子树最大深度,
3. 然后比较左子树和右子树选取最大深度(从下往上比较)
三、代码实现
class Solution {public int maxDepth(TreeNode root) {if (root == null) {return 0;} else {//先求出左子树最大深度,在求出右子树最大深度,然后比较左子树和右子树选取最大深度(从下往上比较)int leftDepth = maxDepth(root.left);int rightDepth = maxDepth(root.right);return Math.max(leftDepth, rightDepth) + 1;}}
}
相关文章:
【刷题笔记9.24】LeetCode:二叉树最大深度
LeetCode:二叉树最大深度 1、题目描述: 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 二、思路与算法 如果我们知道了左子树和右子树的最大深度 lll 和 rrr,…...
投资理财知识分享:100个金融知识专业术语
大家好,我是财富智星,今天跟大家分享一下投资理财知识方面100个金融知识专业术语,希望能帮助大家了解更多金融知识。 1. 股票:代表对一家公司所有权的证券。 2. 债券:公司或政府发行的借款证券。 3. 投资组合ÿ…...
【ESP8266+TM1650时钟数码管+DS3231模块】制作网络时钟
【ESP8266TM1650时钟数码管DS3231模块】制作网络时钟 所需元器件接线方式代码 所需元器件 ESP8266 NodeMCU——开发板TM1650时钟数码管——显示时钟DS3231模块——网络对时 接线方式 TM1650 SCL—>D1 SDA—>D2DS3231 SCL—>D1 SDA—>D2 代码 #include <NTP…...
手动安装Linux服务器JDK
JDK安装 1.首先下载、上传JDK压缩包 官网下载路径:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html,下载之前建议先登录服务器,查询服务器类型,防止出现-bash: ./java: cannot execute binary fil…...
9月24日,每日信息差
今天是2023年09月24日,以下是为您准备的12条信息差 第一、米博发布无滚布洗地机升级7系V7Pro、Q7Pro 第二、我国首个投入商业开发的大型页岩气田产气量突破600亿立方米。该气田作为我国首个投入商业开发的大型页岩气田,累计产气量日前已突破600亿立方米…...
【Linux】详细介绍Linux重入不可重入带例子
在Linux中,重入性指的是一个函数可以安全地在同时被多个线程或进程调用时正确地执行。不可重入性则表示一个函数在被并发调用时可能会导致不确定的行为或数据损坏。 不可重入 以下是一些示例: 静态变量:当函数使用静态变量时,可…...
学术团体的机器人相关分会和机器人相关大赛的说明
1. 中国机械工程学会 (机器人分会) 2017年成立,地点 华中科技大学 :中国机械工程学会机器人分会在汉成立 (huanqiu.com) 链接:中国机械工程学会 (cmes.org) 侧重点:工业机械臂、工厂和物流相关的移动机…...
C# 并发编程
C# 并发编程是指在多个线程同时执行的情况下,有效地管理共享资源、避免竞态条件和确保线程安全的编程技术。C#提供了一些丰富的工具和库来支持并发编程,以下是一些重要的概念和技术: 线程和任务: C#通过System.Threading和System.…...
关于ClickHouse的表引擎和SQL操作
目录 前言: 一.表引擎 (严格区分大小写) 1.TinyLog引擎 2.Memory 3.MergeTree 二.Sql操作 clickhouse 和 mysql 的比较 1 create 2 Insert 3 Update 和 Delete 前言: 在学习使用clickhouse时,首先就要先认识它的一大特点就是表…...
rust字符串
标准库提供了String结构体表示字符串。 String实际上就是Vec<u8>的封装。唯一的不同是String的方法假定Vec<u8>中的二进制都是utf8编码的 pub struct String {vec: Vec<u8>, }一、定义String 1.使用new方法创建空字符串 let string String::new();2.使用…...
解析-BeautifulSoup
解析-BeautifulSoup 1.基本简介 1.BeautifulSoup简称:bs4 2.什么是Beatifulsoup?Beautifulsoup,和1xm1一样,是一个html的解析器,主要功能也是解析和提取数据 3.优缺点?缺点: 效率没有1xm1的效率高优点: 接口设计人性化,使用方…...
C++:数组
C中的数组是一种用于存储相同数据类型的元素的数据结构。以下是C数组的一些特点: 固定大小:数组在创建时需要指定其大小,而且无法在运行时改变大小。这意味着一旦数组被创建,其大小就是固定的,除非创建一个新的数组。 …...
结合Mockjs与Bus事件总线搭建首页导航和左侧菜单
🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《ELement》。🎯🎯 …...
模拟桌面自动整理, 先顶左,再顶上。
5 6 **##** ****#* ***##* #***** ***#** ##**** ##**** #***** #***** #***** #include<iostream> using namespace std; #define MAX 1024char a[MAX][MAX]; void H(char arr[][MAX], int n,int idx) {//n列数 ,idx 某行int left 0;int right n - 1;char t;while (…...
新增MariaDB数据库管理、支持多版本MySQL数据库共存,1Panel开源面板v1.6.0发布
2023年9月18日,现代化、开源的Linux服务器运维管理面板1Panel正式发布v1.6.0版本。 在这个版本中,1Panel新增MariaDB数据库管理;支持多版本MySQL数据库共存;支持定时备份系统快照和应用商店中已安装应用;支持为防火墙…...
【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix
一、下载驱动 cloudera官网 1.1 官网页面下载 下载页面 的Database Drivers 挑选比较新的版本即可。 1.2 集群下载 Hive可能集群没有驱动包。驱动包名称:HiveJDBC42.jar。41结尾的包也可以使用的。注意Jar包的大小一定是十几MB的。几百KB的是thin包不可用。 …...
MongoDB索引
索引支持在MongoDB中高效执行查询。如果没有索引,MongoDB必须扫描集合中的每个文档才能返回查询结果。如果查询存在适当的索引,MongoDB将使用该索引来限制它必须扫描的文档数。 尽管索引提高了查询性能,但添加索引对写入操作的性能有负面影响…...
ChatGPT的问世给哪些行业带来了冲击?
目录 引言Chat GPT 对行业的影响在线客服和智能客服行业传统自动回复机器人的局限性Chat GPT 的提升能力 教育培训行业个性化学习需求的挑战Chat GPT 的个性化优势 金融保险行业客户服务的变革Chat GPT 的智能化应用 医疗健康领域自助诊断及咨询的便利性Chat GPT 在医疗领域的应…...
Elasticsearch:与多个 PDF 聊天 | LangChain Python 应用教程(免费 LLMs 和嵌入)
在本博客中,你将学习创建一个 LangChain 应用程序,以使用 ChatGPT API 和 Huggingface 语言模型与多个 PDF 文件聊天。 如上所示,我们在最最左边摄入 PDF 文件,并它们连成一起,并分为不同的 chunks。我们可以通过使用 …...
docker系列(7) - Dockerfile
文章目录 7. Dockerfile7.1 Dockerfile介绍7.2 指令规则7.3 指令说明7.3.1 RUN命令的两种格式7.3.1 CMD命令覆盖问题7.3.2 ENTRYPOINT命令使用7.3.3 ENV的使用 7.4 构建tomcat Dockerfile案例7.4.1 准备原始文件7.4.2 编写Dockerfile7.4.3 构建镜像7.4.4 验证镜像 7.5 构建jdk基…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)
名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 原创笔记:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 上一篇:《数据结构第4章 数组和广义表》…...
