二叉树的最大深度(简单难度)

简介: 二叉树的最大深度(简单难度)

题目概述(简单难度)

给定一个二叉树,找出其最大深度

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明: 叶子节点是指没有子节点的节点。

示例

给定二叉树 [3,9,20,null,null,15,7]

  3
   / \
  9  20
    /  \
   15   7

返回它的最大深度 3

题目链接

点我进入leetcode

思路与代码

思路展现

使用子问题来进行解答

首先明确什么是深度?

深度就是从该节点到根节点所经历的节点个数

一颗二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。也就是我们二叉树的高度.

所以一棵二叉树的最大深度其实就是这棵二叉树的高度.

求二叉树的高度,我们一般使用子问题的解法,即二叉树的高度等于根节点左子树的高度与根节点右子树高度进行比较,选出两者中的最大值,然后这个最大值加1后的值即为我们这棵二叉树的高度.

核心思想还是递归的思想来看代码:

代码示例

class Solution {
    public int maxDepth(TreeNode root) {
        if(root == null) {
            return 0;
        }
        int leftheight = maxDepth(root.left);
        int rightheight = maxDepth(root.right);
        return leftheight > rightheight ? leftheight + 1:rightheight + 1;
    }
}

错误代码:

class Solution {
    public int maxDepth(TreeNode root) {
       if(root == null) return 0;
        return maxDepth(root.left) > maxDepth(root.right) ?
                maxDepth(root.left)+1 : maxDepth(root.right)+1;
    }
}

这份代码时间复杂度过高,运行后会超出时间限制,所以应该像上述那样定义临时变量来存储每次递归的结果.


总结

时间复杂度:O(n):其中 n 为二叉树节点的个数。每个节点在递归中只被遍历一次。


空间复杂度:O(height):其中 height 表示二叉树的高度。递归函数需要栈空间,而栈空间取决于递归的深度,因此空间复杂度等价于二叉树的高度。


相关文章
代码随想录Day17 LeetCode T98 验证二叉搜索树 T530 二叉搜索树的最小绝对差 T501 二叉搜索树中的众数 T236二叉搜索树的最近公共祖先
代码随想录Day17 LeetCode T98 验证二叉搜索树 T530 二叉搜索树的最小绝对差 T501 二叉搜索树中的众数 T236二叉搜索树的最近公共祖先
55 0
代码随想录 Day13 二叉树 LeetCode T104 二叉树的最大深度 T111 二叉树的最小深度 T222完全二叉树的节点个数
代码随想录 Day13 二叉树 LeetCode T104 二叉树的最大深度 T111 二叉树的最小深度 T222完全二叉树的节点个数
57 0
|
6月前
【力扣】104. 二叉树的最大深度、111. 二叉树的最小深度
【力扣】104. 二叉树的最大深度、111. 二叉树的最小深度
|
12月前
|
算法
代码随想录算法训练营第十五天 | LeetCode 104. 二叉树的最大深度、559. N 叉树的最大深度、111.二叉树的最小深度、222. 完全二叉树的节点个数
代码随想录算法训练营第十五天 | LeetCode 104. 二叉树的最大深度、559. N 叉树的最大深度、111.二叉树的最小深度、222. 完全二叉树的节点个数
53 0
|
存储 算法 前端开发
前端算法-叉树的最大深度
前端算法-叉树的最大深度
|
机器学习/深度学习 算法 Java
代码随想录训练营day16|104.二叉树的最大深度 559.n叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数...
代码随想录训练营day16|104.二叉树的最大深度 559.n叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数...
|
机器学习/深度学习 存储 人工智能
代码随想录训练营day21| 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先...
代码随想录训练营day21| 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先...
二叉搜索树的最近公共祖先(简单难度)
二叉搜索树的最近公共祖先(简单难度)
76 0
二叉搜索树的最近公共祖先(简单难度)
代码随想录刷题|LeetCode 104.二叉树的最大深度 559.n叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数(上)
代码随想录刷题|LeetCode 104.二叉树的最大深度 559.n叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数
|
关系型数据库 分布式数据库
另一棵树的子树(简单难度)
另一棵树的子树(简单难度)
103 0
另一棵树的子树(简单难度)