二叉树的最大深度
从根节点到叶子节点的最长路径长度
说明: 叶子节点是指没有子节点的节点。
方法一:深度优先搜索(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