二叉树的最大深度 - LeetCode 热题 37
创作时间:
作者:
@小白创作中心
二叉树的最大深度 - LeetCode 热题 37
引用
CSDN
1.
https://m.blog.csdn.net/Queser_/article/details/137061577
问题描述
给定一个二叉树 root,返回其最大深度。二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数。
示例
示例 1:
输入:root = [3,9,20,null,null,15,7]
输出:3
示例 2:
输入:root = [1,null,2]
输出:2
提示
- 树中节点的数量在 ([0, 10^4]) 区间内。
- (-100 <= Node.val <= 100)
解题方法
这道题目是关于二叉树的最大深度,即从根节点到最远叶子节点的最长路径上的节点数。
由于树的结构具有递归性质,树的每一个子树都可以看作是一个独立的树,我们可以将问题分解为子问题,先处理子问题的解,再处理当前问题。
也就是先求出左右子树的最大深度,当前节点的最大深度就很好求了,就是左右子树深度的较大值+1。
- 判断根节点是否为空
- 如果根节点为空,说明当前节点是叶子节点的子节点,返回深度为0。
- 递归计算左右子树的深度
- 递归调用
maxDepth函数来计算左右子树的深度,得到左子树的深度l和右子树的深度r。
- 返回当前节点的最大深度
- 返回左右子树深度的较大值,并加上当前节点的深度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 {
public int maxDepth(TreeNode root) {
if(root == null){
return 0;
}
int l = maxDepth(root.left);
int r = maxDepth(root.right);
return Math.max(l, r) + 1;
}
}
热门推荐
砂糖橘的五大健康益处与食用注意事项
钢琴学习进阶图,从入门到精通
鱼油与磷虾油:哪种更胜一筹?对降低痴呆症风险有用么
《艾尔登法环》故事介绍:拉达冈与玛丽卡的新阴谋
S38赛季结束时间公布:3月底更新,还有45天上分时间
如何在真实推荐系统中应用矩阵分解算法
🥦十字花科蔬菜:营养丰富、健康之选
充电宝电量缩水之谜:10000毫安为何实际只有6000毫安?
公司法的公司组织形式有哪些内容
蔡康永的语录摘录
新型基因编辑工具:精准医疗与生物制造的未来科技
一学就会,1分钟教会你,10W+爆款田间乡野治愈视频(附提示词技巧)
西安十大名酒:除了羊肉泡馍和凉皮,这些酒品更是一绝
欧洲青训,到底是怎么训练孩子的基本功的?
手腕疼痛,狭窄性腱鞘炎究竟是怎么回事?
探秘柘荣乡村,感受田园风光与现代文明的和谐共生
TPM管理:设备的可靠性维修提升管理--MTTR
参军后是否有补助近视手术费用
“三八”节鲜花走俏,花店销售额翻两三倍!专家:鲜花经济正在复苏
全国非遗项目知多少?
聚醚醚酮(PEEK)制品的种类及其应用领域
项目机械管理分析怎么写
香港开户所需资料详解:轻松掌握开户流程和准备材料
如何测试色盲:软件选择与测试方法指南
夜间拍摄不出片?这几个关键点你需要注意
汉字“易”的详细解释
与女孩畅聊秘籍:开启心动交流之旅
新书推荐:《内卷时代做幸福的教育人》在内卷化的压力中找到教育的本质与幸福
大地艺术,点亮秀美乡村
燃油滤清器安装位置在哪里?安装时有没有方向要求?