首页
学习
活动
专区
工具
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看成根节点。 深度优先遍历是根节点及以下的,比如左的最深度及其右的最深度哈。

24320
  • 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 表示二叉树的高度。递归函数需要栈空间,而栈空间取决于递归的深度,因此空间复杂度等价于二叉树的高度。

    25740

    LeetCode | 104.二叉树的最大深度

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

    33051

    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

    18720

    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 为二叉树节点的个数

    18430

    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); // 返回当前结点的子树最大深度

    40920

    力扣 (LeetCode)-104. 二叉树的最大深度,图

    )-合并两个有序链表,删除排序数组中的重复项,JavaScript笔记|刷题打卡-3月2日 力扣 (LeetCode)-最大子序和,JavaScript数据结构与算法(数组)|刷题打卡-3月3日 针对CSS...技术点评-3月9号 力扣 (LeetCode)-合并两个有序数组,字典,散列表|刷题打卡-3月10号 力扣 (LeetCode)-对称二叉树,树|刷题打卡 前言 如果这篇文章有帮助到你,给个❤️关注,❤️...(要在n个岛屿之间建造桥梁,想用最低的成本实现所有岛屿相互连通) 最小生成树的算法:Prim算法和Kruskal算法 104....二叉树的最大深度 一、题目描述 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 ?...const right = maxDepth(root.right); return Math.max(left, right) + 1; } }; 四、总结 二叉树的最大深度

    62520
    领券