首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Leetcode 104二叉树的最大深度

是一个经典的二叉树问题,要求计算给定二叉树的最大深度。下面是完善且全面的答案:

二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数。解决这个问题的常用方法是使用递归。

首先,我们需要了解二叉树的概念。二叉树是一种树状结构,其中每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的深度是指从根节点到最远叶子节点的路径上的节点数。

解决这个问题的递归算法如下:

  1. 如果二叉树为空,即根节点为null,那么最大深度为0。
  2. 如果二叉树不为空,那么最大深度等于左子树的最大深度和右子树的最大深度中的较大值加1。
  3. 递归计算左子树和右子树的最大深度,然后取较大值加1即可。

以下是一个示例的Java代码实现:

代码语言:txt
复制
class Solution {
    public int maxDepth(TreeNode root) {
        if (root == null) {
            return 0;
        }
        int leftDepth = maxDepth(root.left);
        int rightDepth = maxDepth(root.right);
        return Math.max(leftDepth, rightDepth) + 1;
    }
}

在腾讯云的云计算平台中,可以使用腾讯云的云服务器(CVM)来搭建和部署应用程序。腾讯云的云服务器提供了高性能、可靠稳定的计算资源,可以满足各种规模的应用需求。您可以通过以下链接了解更多关于腾讯云云服务器的信息:腾讯云云服务器产品介绍

此外,腾讯云还提供了丰富的云计算服务和解决方案,包括云数据库(TencentDB)、云存储(COS)、人工智能(AI)、物联网(IoT)、区块链(Blockchain)等。您可以根据具体需求选择适合的产品和服务。

希望以上回答能够满足您的需求,如果还有其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

leetcode:104二叉树最大深度

思路:用深度优先遍历。 深度优先遍历是尽可能深遍历这棵树。 怎么做? 新建一个变量记录每一个节点层级,找到最大层级即可。 解题步骤: 新建一个变量对其深度记录,返回最大记录即可。...因为对3进行深度优先遍历所以把3看成根节点。先访问根节点。 然后先对3左边进行深度优先遍历。3左边是9所以对9进行深度优先遍历,把9看成根节点,先访问根节点。...然后对其下left进行深度优先遍历。 因为9下面什么都没有了就为叶子节点了。 因为左边完了,所以右边了。 然后对3右边进行深度优先遍历,是20,把20看成根节点,先访问根节点。...然后对20右边进行深度优先遍历,是7,把7看成根节点,先访问根节点。对其下进行深度优先遍历,什么都没有为叶子节点(第三层次),完成了。 流程问题?...对谁进行深度优先遍历,比如对3进行深度优先遍历就把3看成根节点。 深度优先遍历是根节点及以下,比如左深度及其右深度哈。

24120
  • Leetcode No.104 二叉树最大深度

    一、题目描述 给定一个二叉树,找出其最大深度二叉树深度为根节点到最远叶子节点最长路径上节点数。 说明: 叶子节点是指没有子节点节点。...示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它最大深度 3 。...二、解题思路:深度优先搜索 如果我们知道了左子树和右子树最大深度 l 和 r,那么该二叉树最大深度即为 max(l,r)+1 而左子树和右子树最大深度又可以以同样方式进行计算。...因此我们可以用「深度优先搜索」方法来计算二叉树最大深度。具体而言,在计算当前二叉树最大深度时,可以先递归计算出其左子树和右子树最大深度,然后在 O(1)时间内计算出当前二叉树最大深度。...空间复杂度:O(height),其中height 表示二叉树高度。递归函数需要栈空间,而栈空间取决于递归深度,因此空间复杂度等价于二叉树高度。

    25540

    LeetCode-104-二叉树最大深度

    # LeetCode-104-二叉树最大深度 给定一个二叉树,找出其最大深度二叉树深度为根节点到最远叶子节点最长路径上节点数。 说明: 叶子节点是指没有子节点节点。...示例 1: 给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回它最大深度 3 。...# 解题思路 方法1、DFS递归: 特例:root为空直接返回0 DFS左子树深度,DFS右子树深度,树深度=Max(左子树,右子树)+root节点 方法2、Queue迭代: 利用层序遍历思想,一层一层遍历...,每过一层深度+1 利用一个先进先出Queue队列,先将root节点加入其中,当queue不为空时候开始遍历 深度+1,弹出队列头部,判断头部左右节点是否为空,不为空则加入其中 对于一层节点,节点数为...queue.size(),对于queue中每个节点都需要进行左右节点判断 当一层遍历完毕时,深度就+1 # Java代码 /** * Definition for a binary tree node

    18420

    LeetCode | 104.二叉树最大深度

    这次来写一下 LeetCode 104 题,二叉树最大深度。 题目描述 题目直接从 LeetCode 上截图过来,题目如下: ?...这也是一道关于二叉树题目,题目中要求我们计算二叉树最大深度,也就是从根节点到最远叶子节点层数。...比较容易想到方法就是对二叉树进行一次层次遍历,然后记录层数,直到遍历完所有节点,这样也就得到二叉树最大深度。...题目分析 二叉树就是每个节点最多可以有两个孩子节点,这两个孩子节点分别称为当前节点左子树和右子树。该题目是要求计算最大深度,而题目中则写着要得到从根节点到最远叶子节点路径上节点数量。...简单介绍一下二叉树 层次遍历 算法。 先来准备一个二叉树二叉树如下图: ? 上图就是题目中给出一棵二叉树,由于这棵树深度不深,直接就可以看出有 3 层。

    32951

    LeetCode-104. 二叉树最大深度(java)

    二、题目描述: 题目: 给定一个二叉树,找出其最大深度二叉树深度为根节点到最远叶子节点最长路径上节点数。 说明: 叶子节点是指没有子节点节点。...具体请看如下示例: 示例 1: 给定二叉树 ​​[3,9,20,null,null,15,7]​​ 3 / \ 9 20 / \ 15 7 返回它最大深度 3 。...题目来源: ​​LeetCode官网​​题目难度:⭐⭐ 三、思路分析: 此题思路就比较单纯,就是找左右数那边深度大则取最大深度即可。...= maxDepth(root.right); // 二叉树最大深度 = 子树最大深度 + 1(因为1是根节点;这点别忘了) return Math.max...(leftHeight, rightHeight) + 1; } } 五、总结: 递归法之leetcode提交运行结果截图如下: 复杂度分析: 时间复杂度:O(n),其中 n 为二叉树节点个数

    17930

    LeetCode 104: 二叉树最大深度 Maximum Depth of Binary Tree

    题目: 给定一个二叉树,找出其最大深度。 Given a binary tree, find its maximum depth. 二叉树深度为根节点到最远叶子节点最长路径上节点数。...示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它最大深度 3 。...解题思路: 总体而言, 有两种思路: BFS 广度优先遍历时用一个变量记录深度 DFS 深度优先遍历时保留每次遍历到叶子结点时最大深度 对于这道题, 用 DFS 深度优先遍历时若使用递归方法, 又可分为两种思路...: 自顶向下, 自底向上 具体可以看这篇文章: 树遍历 Traverse a Tree 类似题目有: LeetCode 559: N 叉树最大深度 Maximum Depth of N-ary...maxDepth(root.left); // 递归右子结点 int rightDepth = maxDepth(root.right); // 返回当前结点子树最大深度

    40620

    ☆打卡算法☆LeetCode 104二叉树最大深度 算法解析

    一、题目 1、算法题目 “给定二叉树,找出最大深度。” 题目链接: 来源:力扣(LeetCode) 链接:104....二叉树最大深度 - 力扣(LeetCode) (leetcode-cn.com) 2、题目描述 给定一个二叉树,找出其最大深度二叉树深度为根节点到最远叶子节点最长路径上节点数。...示例 1: 输入: [3,9,20,null,null,15,7] 输出: 3 二、解题 1、思路分析 今天又双叒叕是二叉树题,这道题依旧可以用广度优先算法思路来接替。...这道题,我们需要将队列中所有节点都拿出来进行拓展,这样可以保证拓展完队列中存放是当前层所有节点,然后一层层进行拓展,最后得到拓展次数,就是该二叉树深度。...-; } ans++; } return ans; } } 3、时间复杂度 时间复杂度 : O(n) 其中n是二叉树节点数

    17310
    领券