“Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。”
今天写了二叉树的中序遍历,所以打算把热题100中关于二叉树的题,都解一遍,方便大家专项学习
一、题目描述
- 给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。
二、思路分析
- 老规矩这道题还是用递归进行解题
- 所谓二叉树的深度,就是指根节点到所有孩子节点的距离最长的那个
- 递归关键点在于退出
- 之后我们求出左边子树的最大深度和右边子树的最大深度,将最大的返回并加一就是结果啦
三、AC 代码:
class Solution {
public int maxDepth(TreeNode root) {
//递归终止条件
if(root == null){
return 0;
}
//返回左子树和右子树的深度比较取最大值,加一
return Math.max(maxDepth(root.left),maxDepth(root.right))+1;
}
}
四、总结:
- 好了,代码撸完,我们
总结一下:-
理解递归的思想,以及递归退出的边界条件
-
拆分问题,求左子树的深度和右子树的深度并取最大值
-
结果要加一不要忘记根节点
-