LeetCode-热题100:104. 二叉树的最大深度

题目描述

给定一个二叉树 root ,返回其最大深度。

二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。

示例 1:

在这里插入图片描述

输入: root = [3,9,20,null,null,15,7]
输出: 3

示例 2:

输入: root = [1,null,2]
输出: 2

提示:

  • 树中节点的数量在 [0, 104] 区间内。
  • -100 <= Node.val <= 100

代码及注释

/*** Definition for a binary tree node.* type TreeNode struct {*     Val int*     Left *TreeNode*     Right *TreeNode* }*/func maxDepth(root *TreeNode) int {// 如果根节点为空,返回深度0if root == nil {return 0}// 递归计算左子树和右子树的最大深度,然后取最大值并加1return max(maxDepth(root.Left), maxDepth(root.Right)) + 1
}

代码解释

  1. 空节点检查:

    if root == nil {return 0
    }
    
    • 如果当前节点 root 为空,那么它的深度为0。
  2. 递归计算最大深度:

    return max(maxDepth(root.Left), maxDepth(root.Right)) + 1
    
    • 使用递归的方法计算左子树和右子树的最大深度。
    • 最大深度是左子树和右子树的深度的最大值加1,因为要加上当前的根节点。
  3. 辅助函数:

    func max(a, b int) int {if a > b {return a}return b
    }
    
    • 这是一个辅助函数,用于返回两个整数中的最大值。

这个递归的解法的时间复杂度是 O(n),其中 n 是二叉树的节点数。

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

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

相关文章

【数字IC/FPGA】什么是无符号数?什么是有符号数?

进制 虽然在日常生活中&#xff0c;我们已经习惯了使用10进制数字&#xff0c;但在由数字电路构成的数字世界中&#xff0c;2进制才是效率更高的选择。 10进制与2进制 10进制&#xff08;decimal&#xff09;计数法&#xff08;一般也叫阿拉伯计数法&#xff09;是在日常生活…

LLM生成模型在生物单细胞single cell的应用:scGPT

参考&#xff1a; https://github.com/bowang-lab/scGPT https://www.youtube.com/watch?vXhwYlgEeQAs 主要是把单细胞测序出来的基因表达量的拼接起来构建成的序列&#xff0c;这里不是用的基因的ATCG&#xff0c;是直接用的基因名称 训练数据&#xff1a;scGPT全人模型是在3…

第⑫讲:Ceph集群OSD扩缩容中Reblanceing数据的重分布

文章目录 1.Reblanceing数据重分布的概念2.验证Reblanceing触发的过程3.Reblanceing细节4.临时关闭Reblanceing机制 1.Reblanceing数据重分布的概念 当集群中OSD进行扩缩容操作后&#xff0c;会触发一个Reblanceing数据重分布的机制&#xff0c;简单的理解就是将扩缩容前后OSD…

MySQL数据库——11、DELETE 语句

在 MySQL 中&#xff0c;使用 DELETE 命令 DELETE 命令允许你指定要删除的行&#xff0c;并且可以配合 WHERE 子句来筛选需要删除的行。 DELETE FROM table_name WHERE condition; table_name 是要删除数据的数据表的名称&#xff0c;condition 是可选的筛选条件&#xff0c…

【Hello算法】 > 第 1 关 > 初识 算法 与 复杂度分析

初识 算法 与 复杂度分析 What are algorithms and data structures ?-什么是算法与数据结构&#xff1f;How to conduct complexity analysis ?-如何进行复杂性分析&#xff1f;时间复杂度空间复杂度 小结Tips&#xff1a; ————————————————————————…

【ubuntu】如何追加path

【背景】 在ubuntu上整备一个项目环境时需要追加Path。 【方法】 先复制下需要加的Path&#xff0c;比如我的是&#xff1a;/home/sheep431/.local/bin 加path命令 nano ~/.bashrc在nano界面输入如下命令 export PATH"/home/sheep431/.local/bin:$PATH"【检验】…

【Golang学习笔记】从零开始搭建一个Web框架(一)

文章目录 net/Http基础框架雏形上下文 学习文档&#xff1a; Go语言标准库文档中文版 7天用Go从零实现Web框架Gee教程 | 极客兔兔 (geektutu.com) gin-gonic/gin: Gin is a HTTP web framework written in Go (Golang). net/Http基础 go语言的http包提供了HTTP客户端和HT…

js 函数的数据类型

在JavaScript中&#xff0c;函数是一种特殊的对象&#xff0c;可以存储在变量中&#xff0c;可以作为参数传递给其他函数&#xff0c;也可以作为函数的返回值返回。 函数的数据类型为"function"&#xff0c;可以使用typeof运算符来检测一个变量是否为函数类型&#…

Day101:漏洞发现-漏扫项目篇NucleiYakitGobyAfrogXrayAwvs联动中转被动

目录 特征类-三方Poc调用&模版Poc调用 案例1&#xff1a;单点对某特征点进行安全评估 Goby-综合类 Nuclei-较综合类 Afrog-特征类 Yakit-可特征可综合 案例2&#xff1a;新型对某特征点进行安全评估 综合类-主动漏扫&中转联动&被动联动 案例1&#xff1a;…

移动开发避坑指南——内存泄漏

在日常编写代码时难免会遇到各种各样的问题和坑&#xff0c;这些问题可能会影响我们的开发效率和代码质量&#xff0c;因此我们需要不断总结和学习&#xff0c;以避免这些问题的出现。接下来我们将围绕移动开发中常见问题做出总结&#xff0c;以提高大家的开发质量。本系列文章…

03-进程-网络命令-软件安装-SSH免密登录

软件安装-网络命令-SSH免密登录 一 软件安装 1 在线安装 命令&#xff1a; yum 作用&#xff1a;yum会从指定的服务器自动下载rpm包并且进行安装&#xff0c;优点是可以自动处理依赖关系&#xff0c;并且一次安装所有的软件包。 配置yum的镜像源 yum源有个统一的下载服务…

剖析 SPI 在 Spring 中的应用

一、概述 SPI&#xff08;Service Provider Interface&#xff09;&#xff0c;是Java内置的一种服务提供发现机制&#xff0c;可以用来提高框架的扩展性&#xff0c;主要用于框架的开发中&#xff0c;比如Dubbo&#xff0c;不同框架中实现略有差异&#xff0c;但核心机制相同…

JavaScript中的cookie、localStorage的区别和特点

在JavaScript中&#xff0c;cookie和localStorage都是用于在客户端存储数据的方法&#xff0c;但它们有一些重要的区别和特点。 Cookie 特点&#xff1a; 存储量小&#xff1a;每个域名下的cookie数量是有限制的&#xff0c;并且每个cookie的大小也是有限制的。一般来说&…

精确号码比例放通算法的设计与实现

精确号码比例放通算法的设计与实现 引言背景问题定义算法设计1. 数据结构2. 算法流程3. 伪代码4. C语言实现 结论参考文献 引言 随着通信技术的飞速发展&#xff0c;呼叫中心和电信运营商面临着日益增长的呼叫管理需求。在某些情况下&#xff0c;为了确保服务质量或者遵守特定…

LeetCode题练习与总结:加一--66

一、题目描述 给定一个由 整数 组成的 非空 数组所表示的非负整数&#xff0c;在该数的基础上加一。 最高位数字存放在数组的首位&#xff0c; 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外&#xff0c;这个整数不会以零开头。 示例 1&#xff1a; 输入&…

浏览器从输入url到渲染的过程

URL 解析&#xff1a; 当用户在浏览器地址栏输入 URL 时&#xff0c;浏览器会首先对 URL 进行解析。这个过程包括解析协议&#xff08;如 HTTP、HTTPS&#xff09;、域名、端口号和路径等信息。 DNS 解析&#xff1a; 把从输入的URL中解析出的域名发送给 DNS 服务器进行解析&a…

方案分享 | 嵌入式指纹方案

随着智能设备的持续发展&#xff0c;指纹识别技术成为了现在智能终端市场和移动支付市场中占有率最高的生物识别技术。凭借高识别率、短耗时等优势&#xff0c;被广泛地运用在智能门锁、智能手机、智能家居等设备上。 我们推荐的品牌早已在2015年进入指纹识别应用领域&#xff…

[dvwa] sql injection

sql injection 0x01 low sql语句没有过滤 经典注入&#xff0c;通过逻辑or为真相当于select * from users where true&#xff0c;99换成1也成 用union select 对齐列数&#xff0c;查看数据库信息 1’ union select 1,2# order by探测对齐列数更方便 1’ or 11 order b…

Python数据挖掘项目开发实战:处理作者归属问题

注意&#xff1a;本文下载的资源&#xff0c;与以下文章的思路有相同点&#xff0c;也有不同点&#xff0c;最终目标只是让读者从多维度去熟练掌握本知识点。 Python数据挖掘项目开发实战&#xff1a;处理作者归属问题 一、项目背景与目标 在出版、科研等领域&#xff0c;确定…

05.MySQL索引事务

1. 索引 1.1 概念 索引是一种特殊的文件&#xff0c;包含着对数据表里所有记录的引用指针。 可以对表中的一列或多列创建索引&#xff0c;并指定索引的类型&#xff0c;各类索引有各自的数据结构实现 1.2 作用 数据库中的表、数据、索引之间的关系&#xff0c;类似于书架上的…