二叉树的最大深度 - 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;
}
}
热门推荐
芙蓉花的功效与作用:从药用价值到营养成分
C语言如何增加文件读写功能
门牙磕掉一小块怎么补?可做树脂补牙或瓷贴面、全瓷牙冠修复
复利思维:从麦粒到财富的几何增长
道家修炼:一种道家打坐方法及心法详解
窝沟封闭和涂氟有什么区别?一文读懂两种常见口腔保健方法
云南昭通旅游景点推荐,最值得打卡的6个昭通旅游景点,这篇全啦
素炒生菜的制作方法与口感调控技巧
台式电脑宽带连接步骤详解
乳腺癌患者如何办理病退?这份实用指南请收好
如何描写自行车:从细节到意境,写出你的专属骑行记忆
血小板PCT偏高什么原因
董卓的崛起:从平凡出身到权臣之路
阴阳师各种达摩有什么用?达摩蛋的用法推荐
中央汇金旗下券商大扩容 整合大戏如何演绎?
如何在各大平台找到最优手机流量套餐的攻略
原生家庭对人格的影响有多大?4个建议说明通过自我成长降低伤害
魔芋有“魔力” 春耕广种植
张益唐被曝已证明黎曼猜想相关问题 黎曼猜想是什么
百姓饥饿为何不食肉
葡萄牙能否自由行?详解葡萄牙自由行攻略与签证要求
历史上的宋江:北宋末年农民起义领袖
C语言函数返回值详解:从基础到进阶
眼睛干涩不舒服?中医师告诉你如何护眼,让眼睛明亮健康!
酒后头晕9个缓解的办法
小鸡出壳多久可以喂食喂水?
Matlab-Simulink文件类型总结
【自动驾驶汽车通讯协议】I2C(IIC)总线通讯技术详解
犬儒主义的哲学思想
中国科学家发现银河系比想象中更大