二叉树的最大深度
从根节点到叶子节点的最长路径长度
说明: 叶子节点是指没有子节点的节点。

方法一:深度优先搜索(DFS)


复杂度分析
时间复杂度:O(n),其中 n为二叉树节点的个数。每个节点在递归中只被遍历一次。
空间复杂度:O(height),其中 height 表示二叉树的高度。递归函数需要栈空间,而栈空间取决于递归的深度,因此空间复杂度等价于二叉树的高度。
package tree;
/**
* 求一颗二叉树的最高深度
*从根节点到叶子节点的最长路径长度
* (二叉树具有天然的的递归结构)
* @author cyl
* @since V1.0.0
* 2020-06-12 13:20
*/
public class MaximumDepthOfBinaryTree {
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x; }
}
public int maxDepth(TreeNode root) {
//递归的终止条件
if(root == null){
return 0;
}
//递归的过程
int leftMaxDepth = maxDepth(root.left);
int rightMaxDepth = maxDepth

本文探讨了如何计算二叉树的最大深度,分别使用深度优先搜索(DFS)和广度优先遍历(BFS)两种方法。在DFS中,时间复杂度和空间复杂度与树的高度相关;而在BFS中,同样的时间复杂度下,空间复杂度可能达到O(n)。
最低0.47元/天 解锁文章
593

被折叠的 条评论
为什么被折叠?



