Leetcode 104. 二叉树的最大深度

131 阅读1分钟

“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;
    }
}

四、总结:

  • 好了,代码撸完,我们总结一下
    • 理解递归的思想,以及递归退出的边界条件

    • 拆分问题,求左子树的深度和右子树的深度并取最大值

    • 结果要加一不要忘记根节点

最后这个算法是Leetcode的第104题,是热题100的第42题,去年我刷了热题100用时一个月左右,接下来我会继续更新,小伙伴可以点赞关注,如果你也在刷热题100的话,希望可以对你有一些启发!