二叉树的最大深度 - 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;
}
}
热门推荐
抖音"电子奸臣"爆红:当代网友爱上当"赛博皇帝"
杭州办理香港签证和护照指南
锦州旅游攻略推荐(锦州旅游攻略)
社工移民到新的国家后,如何获取当地的社工从业资格和认证?
苹果的英文发音详解:从音标到语境的全面指南
北海道牛奶吐司:柔软如云朵的烘焙经典
面部毛孔粗大、黑头多?试试这些护肤方法
从材料到设计细节:选购优质燃气灶全攻略
商铺租金价格评估需要考虑哪些要素?如何进行合理评估?
商铺租金交税有哪些规定?这些规定如何具体执行?
新生儿一天拉几次粑粑正常
大模型微调篇——全量微调与部分微调
口香糖的几个小知识
自动化测试脚本的安全性如何保障
深度解析万能光驱驱动器,历史变迁、技术革新与未来趋势
比亚迪车架号查询车型的方法
哪些论坛计算机大牛多,有利于编程学习提高
老人摔倒骨折后的应急处理与康复护理指南
百岁老人骨折5天后重新站立|创伤骨科、手术麻醉科等多科室的“生命接力”
自体脂肪填充 vs 玻尿酸填充:哪种美容方法更适合你?
聚丙烯酰胺溶解时需要注意哪些问题?
药王谷患癌者死亡事件调查 “神医”侯元祥:家里三代石匠木匠,本人不会号脉
新版KET各题型通关攻略
宝宝剧烈咳嗽夜间加重警惕百日咳(图)
解开历史迷雾,这个讲座带领观众“考古”巴文化
家常菜分享:麻婆豆腐
旅游需要买哪些保险合适呢
人群突然发出欢呼声:MG,MG!中国车企品牌在英国成主角,百年名爵焕发新生
三文鱼哪个部位最好吃?从头到尾的食用指南
楷字取名吉凶,楷字取名的寓意和吉凶