leetcode算法104.二叉树的最大深度

Posted 学无止境小奇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode算法104.二叉树的最大深度相关的知识,希望对你有一定的参考价值。

👏👏👏

哈喽!大家好,我是【学无止境小奇】,一位热爱分享各种技术的博主!😍😍😍

⭐【学无止境小奇】的创作宗旨:每一条命令都亲自执行过,每一行代码都实际运行过,每一种方法都真实实践过,每一篇文章都良心制作过。✊✊✊

⭐【学无止境小奇】的博客中所有涉及命令、代码的地方,除了提供图片供大家参考,另外会在图片下方提供一份纯文本格式的命令或者代码方便大家粘贴复制直接执行命令或者运行代码。🤝🤝🤝

⭐如果你对技术有着浓厚的兴趣,欢迎关注【学无止境小奇】,欢迎大家和我一起交流。😘😘😘

❤️❤️❤️感谢各位朋友接下来的阅读❤️❤️❤️

文章目录

一、leetcode算法

1、二叉树的最大深度

1.1、题目

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

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

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

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

    3
   / \\
  9  20
    /  \\
   15   7

返回它的最大深度 3 。

1.2、思路

思路一:此题我们可以使用深度优先搜索,我们拆成递归的方式来解决问题,如果我们知道了左子树和右子树的最大深度l和r,那么该二叉树的最大深度即为max(l,r)+1,也就是说跟节点的最大深度等于左右子树中最大深度加1,那么我们就可以用递归的形式将代码写出来。

1.3、答案

class Solution 
    public int maxDepth(TreeNode root) 
        if(root == null)
            return 0;
        else
            int leftHeight = maxDepth(root.left);
            int rightHeight = maxDepth(root.right);
            return Math.max(leftHeight,rightHeight) + 1;
        
    

复杂度分析

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

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

以上是关于leetcode算法104.二叉树的最大深度的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 104. 二叉树的最大深度

Leetcode题目104.二叉树的最大深度(DFS+BFS简单)

算法leetcode|剑指 Offer 55 - I. 二叉树的深度|104. 二叉树的最大深度(rust和go)

算法leetcode|剑指 Offer 55 - I. 二叉树的深度|104. 二叉树的最大深度(rust和go)

算法leetcode|剑指 Offer 55 - I. 二叉树的深度|104. 二叉树的最大深度(rust和go)

⭐算法入门⭐《二叉树》简单04 —— LeetCode 104. 二叉树的最大深度