二叉树的最大深度 - 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;
}
}
热门推荐
肝脏的五个生理功能是什么?
肿胀怎么办?如何有效消肿?
揭秘漳州古城:这座城市的灵魂地标,你了解多少?
一战德国东线失误:揭示德军的战略布局以及背后的逻辑!
美空军发布2050发展愿景
中国科学院数学研究70年:从自立自强到国际舞台的辉煌之路
SDLC、HDLC和ADCCP协议中的帧同步与逻辑电平转换详解
如何为视频选择合适的背景音乐与编辑技巧
深入揭秘:羽毛球行业如何走出涨价困局
布鲁克林级轻型巡洋舰
数列Sn性质的综合应用:一道高考数学典型例题详解
湖北荆州:从越王剑到数字人,一座三线城市的科技逆袭与文化出海
HTML页面如何实现响应式设计:从基础到实战
骨化三醇、阿法骨化醇、艾地骨化醇,怎么选择?
光圈对曝光的影响:摄影入门必修课
相机快门速度的意义与运用(深入解析快门速度的重要性与影响)
“PE的多重含义解析:涵盖教育、金融、医疗等多个领域”
不知道聊什么时这样做!3个心理学小技巧,打开别人心房
宝可梦大集结:黏美龙深度攻略,防御型巨兽玩法全解析
整理房间,整理心情,改变生活
认识胃酸倒流
艺术品投资与风险管理-洞察分析
AI Agent数据预处理训练最佳实践指南
户外背包怎么挑?这5个细节让你不走冤枉路
备份服务器数据的方法和策略
银行的个人理财规划中的负债管理策略有哪些?
点燃孩子的创意灵感:无聊带来的好处
图像质量评价概述(评估指标、传统检测方法)
东京夜樱・夜间点灯赏樱指南
科普|银杏类药物与这些治疗药物合用要小心!