首页 > 其他分享 >11_二叉树的最大深度

11_二叉树的最大深度

时间:2023-11-25 09:33:05浏览次数:33  
标签:11 right int queue 二叉树 深度 null root

二叉树的最大深度

给定一个二叉树 root ,返回其最大深度。

二叉树的 最大深度是指从根节点到最远叶子节点的最长路径上的节点数。

示例 1:

img

输入:root = [3,9,20,null,null,15,7]
输出:3

示例 2:

输入:root = [1,null,2]
输出:2

【思路】

方法一:递归的方式

递归的出口:root==null

递归的条件:树的最大高度=1+maxDepth(左子树,右子树)

public int maxDepth(TreeNode root) {
	if (root == null) {
        return 0;
    } else {
        int left = maxDepth(root.left);
        int right = maxDepth(root.right);
        return Math.max(left, right) + 1;
    }
}

方法二:层次遍历

使用迭代法的话,使用层序遍历是最为合适的,因为最大的深度就是二叉树的层数,和层序遍历的方式极其吻合。在二叉树中,一层一层的来遍历二叉树,记录一下遍历的层数就是二叉树的深度。

public int maxDepth(TreeNode root) {
    int depth = 0;
    if (root == null)  return depth;
    Queue<TreeNode> queue = new LinkedList<>();
    queue.add(root);
    // 辅助队列不为空
    while (!queue.isEmpty()) {
        int levelSize = queue.size();
        depth++;
        for (int i = 0; i < levelSize; i++) {
            TreeNode temp = queue.poll();
            if (temp.left != null) {
                queue.add(temp.left);
            }
            if (temp.right != null) {
                queue.add(temp.right);
            }
        }
    }
    return depth;
}

标签:11,right,int,queue,二叉树,深度,null,root
From: https://www.cnblogs.com/codingbao/p/17855201.html

相关文章

  • 敏捷冲刺11.24
    所属课程软件工程导论作业要求项目冲刺作业目标连续七天的敏捷冲刺github链接CampusSecond-handMarket--NoBailanGroup目录一、团队介绍1、团队名称:摆烂就不队2、团队成员二、站立式会议三、任务情况1、昨天已完成任务2.今天计划完成任务3、工作中遇到的困......
  • 20231124
    又是容斥的一天呢。容斥做傻了,每次推容斥系数都能推错。放学的时候@Super_Cube给我说了明天gm打算从「CDQ解决二维偏序问题」讲起,瞬间就不想去听gm上课了。但是@Super_Cube给我说「偶尔听gm发癫还是能放松一下的。」我说『不行,浪费我时间。』「也就两个小时而已,况且“......
  • 11.24每日总结
    代码:1000时长7h今日学习了大数据的测试知识,做了一上午,终于完成1MathorCup高校数学建模挑战赛——大数据竞赛练习题:观影大数据分析王S聪想要在海外开拓万D电影的市场,这次他在考虑:怎么拍商业电影才能赚钱?毕竟一些制作成本超过1亿美元的大型电影也会失败。这个问题对电......
  • FS2111 是一款低静态电流、高效率、PFM 模式控制的同步升压变换器
    干电池升压芯片是一种能够将3V、3.3V、4.5V、5V等电压升压至所需电压的芯片。这种芯片具有高效率、低功耗、小体积、轻重量等特点,广泛应用于各种需要升压的领域,如手电筒、数码相机、蓝牙耳机等。干电池升压芯片的升压输出范围一般在3V-5V之间可调,可以根据实际需求进行调节。在升压......
  • 20211128《信息安全系统设计与实现》第十三章学习笔记
    一、任务内容自学教材第13章,提交学习笔记(10分)1.知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题”核心是要求GPT:“请你以苏格......
  • 11.24每日总结
    今天完成建民老师布置的大数据测试 1MathorCup高校数学建模挑战赛——大数据竞赛练习题:观影大数据分析王S聪想要在海外开拓万D电影的市场,这次他在考虑:怎么拍商业电影才能赚钱?毕竟一些制作成本超过1亿美元的大型电影也会失败。这个问题对电影业来说比以往任何时候都......
  • ubuntu黑屏(解决,但又没完全解决)关于双系统 ubuntu22.04 LST+win11 及 双显卡 AMD-6650X
    今天一开机,ubuntu系统就黑屏左上角光标一直闪,并且报了bluetooth的问题和v2raya的问题。alt+f2-f7都无法切换到命令界面或图形界面。但是反复重启后,有个别几次能进入图形界面。排查了几个原因1、内核的问题。参考:https://www.mail-archive.com/[email protected]......
  • P1135题解
    思路我写的好像是动规的做法。设\(f_{i,j}\)表示第\(i\)步\(j\)个点是否可以走到,值要么为\(1\),要么为\(0\)。最多走\(n\)步,因为总共只有\(n\)个点,每一步都肯定会多延伸出一个点,要不然就重复计算。不难得出转移公式:\(f_{i+1,j+k_j}=f_{i,j}\)\(f_{i+1,j-k_j}=f_{......
  • 2023.11.24 日记 夜浓浓
    轻闲的一天。夜浓浓地笼罩在窗外,远远地依稀见到明暗的城市灯火。白日久违地听孙佳讲课,内容是没细听了,只是边学着英语的《语法通霸》边挂着一只耳朵听讲(纪中的英语老师笑着对我们仨说,挂着一只耳朵听课。她没有解释下去,我约摸是边做自己的事边听课,偶尔会被课堂吸引。不知这样是否是......
  • 11.23日记
    MapReduce是面向大数据并行处理的计算模型、框架和平台,它隐含了以下三层含义:(1)MapReduce是一个基于集群的高性能并行计算平台(ClusterInfrastructure)。它允许用市场上普通的商用服务器构成一个包含数十、数百至数千个节点的分布和并行计算集群。(2)MapReduce是一个并行计算与运行软件......