二叉树的最大深度 - 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;
}
}
热门推荐
54岁富冈佳子亲身示范:不穿紧身衣、不穿老年装,到老都“贵气”
雷诺曼牌爱情占卜:揭秘你的感情未来
雷诺曼牌中的骑士与幸运草:解读你近期的人缘变化
51只新基来袭!2月市场能否再掀热潮?
标点符号使用指南:引号、冒号、顿号、分号等基本用法详解
省略号的多样用法与写作技巧探讨
这10个异常症状,其实是血糖高的表现(内附筛查方法)
大唐名将李靖,为什么乱入殷商“封神榜”?
瑶瑶家的春节:一块"举石翡翠"引发的传承故事
怎样在紧急情况下求助?有哪些求救方法?
《甄嬛传》中的反派角色如何推动剧情高潮?
郑土有:时代变迁中的春节民俗文化
“恋爱脑”的5点自救建议
2024年,我去过3个冷门又好玩的城市
工龄工资管理办法中关于工龄工资的支付标准是什么?
《甄嬛传》中的女性养生智慧:从饮食调养到身心和谐
用Flask和SQLite打造高效软件登录系统
项目管理系统的登录优化秘籍
他们的“墓志铭”书写着千年前火焰山脚下的卫戍故事
冬季养生:苏利亚克里亚激活你的太阳经
刘渡舟解读《伤寒论》中的太阳经应用
国家新能源政策引领下的储能产业投资前景探析
安全生产:如何有效评估和控制风险?
车间安全大排查:如何避免安全隐患?
温岭槽罐车爆炸事故:安全管理的深刻反思与启示
秋冬暖心必备:红糖糯米饭的做法分享
线粒体的结构和功能都有哪些
戴宗究竟有什么功劳?为何能在梁山上排名第二十位?
水浒传中的戴宗:梁山好汉排名二十,疾如风的“神行太保”
戴宗传奇:从江州神行太保到梁山情报大师