自学内容网 自学内容网

NC 二叉树的最大深度

系列文章目录



前言

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
在这里插入图片描述


描述
求给定二叉树的最大深度,
深度是指树的根节点到任一叶子节点路径上节点的数量。
最大深度是所有叶子节点的深度的最大值。
(注:叶子节点是指没有子节点的节点。)
在这里插入图片描述
图解
在这里插入图片描述

算法流程:
定义递归函数功能:获取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):递归占用的栈空间


原文地址:https://blog.csdn.net/pleaseprintf/article/details/140698969

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!