系列文章目录
文章目录
- 系列文章目录
- 前言
前言
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
 
描述
 求给定二叉树的最大深度,
 深度是指树的根节点到任一叶子节点路径上节点的数量。
 最大深度是所有叶子节点的深度的最大值。
 (注:叶子节点是指没有子节点的节点。)
 
 图解
 
算法流程:
 定义递归函数功能:获取root结点的最大深度
 递归终止条件:root为null
 返回值:先递归左子结点,再递归右子结点,最后求出每一子树的深度的最大值
 Java 版本代码如下:
import java.util.*;
 
public class Solution {
    // 定义递归函数功能:求出当前结点的
    public int maxDepth (TreeNode root) {
        // 递归终止
        if(root == null) {
            return 0;
        }
        // dfs,先递归左子结点,再递归右子结点,最后求出每一子树的深度的最大值
        return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
    }
}
复杂度分析:
 时间复杂度 O(N):计算所有结点的深度的递归需要经过每个结点
 空间复杂度 O(N):递归占用的栈空间



















