二叉树的最大深度 - 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;
}
}
热门推荐
解决笔记本电脑无法连接WiFi的常见问题及应对技巧分享
上海新版社保卡电子版申领流程
火神山医院建设对我国应急抢建工程的启示与建议
励志歌曲《怒放的生命》赏析
励志歌曲《怒放的生命》赏析
抽烟影响生育功能吗?对孩子有什么影响?
脑疝形成的关键
从出生到一岁半,小猫咪的6个重要生长和社会化阶段
筏板基础结构计算
池袋:东京最大繁华街区的全攻略
王安石变法:革新之志与帝国衰亡的多维解析
探寻印第安人起源:殷商与美洲的神秘联系
富大龙新作《人余集》上线,文学与演艺双重才华备受瞩目
他演活了秦始皇,却活成了“路人”,富大龙到底经历了什么?
明英宗朱祁镇生平简介及逝世之谜
五行属木的植物大全:从树木到花卉的全面解析
《喜羊羊与灰太狼之飞马奇遇记》:奇幻世界中的成长与友谊
浙江人形机器人创新中心:区域新势力逐浪产业“井喷前夜”
相亲正在成为现代年轻人的恋爱时尚
广州新增一个轻轨公园!可赏花、慢跑、溜娃!
IP地址有限制吗?IP地址被限制如何取消
深入了解美国手机卡:选择最适合您的服务
八字中的“偏财”和“正财”真有这幺大的区别
激光铝焊:工艺优势与应用实例
华人学者研究发现,适量饮酒可降低关节炎风险,而喝茶和咖啡或增加风险
北京法拍四合院标王诞生:福祥胡同15号以2.04亿元成交,刷新纪录
柬埔寨旅行必打卡!不过错过的10大体验
甲状腺结节手术后多久可以上班?这些因素需考虑
白墨烫画墨水:纺织品印花的革命性技术
金丝玉怎么辨别?四大鉴别方法和六大鉴定特点全解析