给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 **说明:** 叶子节点是指没有子节点的节点。 **示例:** 给定二叉树 `[3,9,20,null,null,15,7]` , 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 附赠leetcode地址:[leetcode](https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/solution/leetcode104er-cha-shu-de-zui-da-shen-du-by-user774/)
Activity
sisterAn commentedon May 14, 2020
解答:递归
复杂度分析:
时间复杂度:O(n)
空间复杂度: O(logn)
leetcode
plane-hjh commentedon May 15, 2020
二叉树的最大深度
主要考察的是深度优先遍历
luweiCN commentedon May 15, 2020
@XuShunyi 你说的没错,节点的深度是这么定义的,但是题干问的是树的最大深度,就是指根节点到最远叶子节点的边的数量,也就是最远的子节点的深度。最远的子节点的深度=树的最大深度
luweiCN commentedon May 15, 2020
@XuShunyi 是的哦,是有点问题,我找到了另一种定义。
luweiCN commentedon May 15, 2020
分析
很明显,递归
fanefanes commentedon May 15, 2020
递归,记录最大长度
迭代实现
依次循环出栈遍历入栈,直到栈为空,遍历完成
弊端:但每个节点需要记录一个属性,修改了元数据
plane-hjh commentedon May 15, 2020
二叉树的最大深度指的是包括根节点的呀。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
AnranS commentedon Nov 19, 2020
BFS
azl397985856 commentedon Mar 3, 2021
题目地址(104. 二叉树的最大深度)
https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/description/
题目描述
前置知识
公司
思路
由于树是一种递归的数据结构,因此用递归去解决的时候往往非常容易,这道题恰巧也是如此,
如果使用迭代呢? 我们首先应该想到的是树的各种遍历,由于我们求的是深度,因此
使用层次遍历(BFS)是非常合适的。 我们只需要记录有多少层即可。相关思路请查看binary-tree-traversal
关键点解析
代码
JS Code:
C++ Code:
Java Code:
Python Code:
Go Code:
PHP Code:
复杂度分析
相关题目
大家对此有何看法,欢迎给我留言,我有时间都会一一查看回答。更多算法套路可以访问我的 LeetCode 题解仓库:https://github.com/azl397985856/leetcode 。 目前已经 40K star 啦。
大家也可以关注我的公众号《力扣加加》带你啃下算法这块硬骨头。
kangkang123269 commentedon Feb 23, 2023
数的深度是这样求
二叉树的深度变换下