LeetCode刷题之HOT100之二叉树的直径

news2024/9/22 4:07:22

2024/5/25 阴天。这几天睡眠质量都非常好,一切似乎都在慢慢上升。先把题做了

1、题目描述

在这里插入图片描述

2、逻辑分析

题目要求就是给一个二叉树,求出两个节点之间的最大长度即为二叉树的直径。怎么做呢?我想不出来。看一下题解吧。题解给出的解法是深度优先搜索。我们来看看大致思路:

比如我们示例1给出的二叉树:我们知道[4,2,1,3]和[5,2,1,3]是最大长度即直径。那么我们可以将根节作为起点,搜索左边的儿子和右边的儿子,左边长度记为L,右边长度记为R。左边可以搜出[4,2]和[5,2],右边可以搜出[3]。那么最大长度为L + R + 1,即为max,而最终的直径为max - 1。递归找出最大的那个即为最终结果,下面看代码

3、代码演示

// 用于记录二叉树的直径
    int maxd ;
    public int diameterOfBinaryTree(TreeNode root) {
        // 初始化 maxd 为 1,因为至少有一个节点
        maxd = 1;
        // 调用 depth 函数计算树的深度,同时更新 maxd 的值
        depth(root);
        // 返回最大直径,即 maxd - 1
        return maxd - 1;
    }
    public int depth(TreeNode root ){
        // 如果当前节点为空,返回 0
        if(root == null){
            return 0;
        }
        // 递归计算左子树的深度
        int L = depth(root.left);
        // 递归计算右子树的深度
        int R = depth(root.right);
        // 更新 maxd 的值,取当前最大值和 L + R + 1 中的最大值
        maxd = Math.max(maxd, L + R + 1);
        // 返回当前节点的深度,即左右子树深度的最大值加 1
        return Math.max(L , R ) + 1;
    }

在IDE中运行一遍就顺畅了许多,递归这一思想真的很重要。时间复杂度:O(n),空间复杂度:O(height),height为树的高度。

ok,做完啦,再见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1696587.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Elasticsearch集群许可证过期问题解决方法汇总

最近在使用elasticsearch的过程中,使用elastic-head进行可视化展示集群的状态和信息,从2024年5月18日突然elastic-head无法现在集群的状态界面啦,elasticsearch集群状态是正常,命令如下: curl -X GET "localhost:9200/_cluster/health?pretty" 在google页面上通过…

小程序的这些知识你知道吗?

一:导航传参 无论是编程式还是声明式导肮传参都是在url?keyvalue&key1value1,无论是否是tabbar页面. 对于回退页面,没办法传参. 这个参数是,跳转到页面的时候,跳转到另一个页面,这个页面就是刚开始执行,等数据执行之后,触发onload,传递的参数放在内存中,跳转是内部底层触…

SpringBoot学习小结之RocketMQ

文章目录 前言一、架构设计1.1 架构图1.2 消息1.3 工作流程 二、部署2.1 单机2.2 集群 三、Springboot Producter3.1 准备3.2 pom依赖、yml 配置3.3 普通消息3.4 顺序、批量、延迟消息3.5 事务消息 四、Springboot Consumer4.1 配置4.2 普通Push消费4.3 回复4.4 集群和广播4.5 …

华为造车布局全曝光,对标奔驰、迈巴赫等

文 | Auto芯球 作者 | 雷慢 这一刻,我承认我格局小了, 就在刚刚,余承东曝光了华为智选车的布局计划, 华为问界、智界、享界等,将全面对标奔驰、迈巴赫、劳斯莱斯等车系, 这布局,确实是世界…

Spring MVC+mybatis 项目入门:旅游网(二) dispatcher与controller与Spring MVC

个人博客:Spring MVCmybatis 项目入门:旅游网(二)dispatcher与controller与Spring MVC | iwtss blog 先看这个! 这是18年的文章,回收站里恢复的,现阶段看基本是没有参考意义的,技术老旧脱离时代…

大规模团队的数据库开发,如何用OceanBase工具快速建立企业级账号体系

前言 为了让数据库开发的安全性与可靠性得以充分保障,数据库开发工具的管控能力显得尤为关键。构建一个健全的账号体系,能够协助开发团队实现对数据库开发工具的全方位管控,从而有效防范各类数据安全隐患,确保数据库开发的顺利进…

深度神经网络——什么是混淆矩阵?

概述 混淆矩阵是一种在机器学习和数据科学中广泛使用的分析工具,用于评估分类模型的性能。它通过比较实际类别和模型预测的类别来提供模型性能的详细信息。以下是混淆矩阵的一些关键点: 结构:混淆矩阵是一个表格,通常有两行两列&…

毫米波雷达模块在智能家居安全系统中的关键技术分析

随着智能技术的不断发展,智能家居已经成为了现代生活的一部分。而智能家居安全系统作为智能家居的重要组成部分,其功能不仅仅是对家庭进行监控和报警,更是通过各种感知技术对家庭安全进行全方位的保障。在智能家居安全系统中,毫米…

Go语言的中间件(middleware)是如何实现的?

文章目录 Go语言的中间件(Middleware)是如何实现的?中间件的工作原理中间件的实现步骤示例代码总结 Go语言的中间件(Middleware)是如何实现的? 在Go语言中,中间件(Middleware&#…

C语言学习笔记之指针(一)

目录 什么是指针? 指针和指针类型 指针的类型 指针类型的意义 指针-整数 指针的解引用 指针 - 指针 指针的关系运算 野指针 什么是野指针? 野指针的成因 如何规避野指针? 二级指针 什么是指针? 在介绍指针之前&#…

使用Pyecharts构建Map对象无法显示颜色--解决

我们在做数据可视化的过程中,可能需要使用到地图作为数据可视化的工具; 包括世界地图、国家地图、省市区地图等; 如果在你设置好颜色数据匹配后,可视化地图未显示对应数据的颜色,那么请检查是否出现以下情况&#xf…

Hadoop运行wordcount实例任务卡在job running的多种情况及解决方法

第一种:配置问题 这是别人的图片,据楼主排查解决是因为hosts配置问题… 现象:各种无法运行、启动 解决办法: 1、修改日志级别 export HADOOP_ROOT_LOGGERDEBUG,console 查看下详细信息,定位到具体问题解决 第二种&…

【JavaSE】/*类和对象(上)*/

目录 一、什么是类,什么是对象 二、类和对象的关系 三、学习类和对象的目的 四、怎样创建一个类 4.1 语法形式 4.2 创建示例 示例一:日期对象 示例二:小狗对象 示例三:学生对象 4.3 注意事项 4.4 修改public修饰的主类…

Day06:Flex 布局

目标:熟练使用 Flex 完成结构化布局 一、标准流 标准流也叫文档流,指的是标签在页面中默认的排布规则,例如:块元素独占一行,行内元素可以一行显示多个。 二、浮动 1、基本使用 作用:让块元素水平排列。 …

如何学习计算机网络(超详细,方法论)

分享一下学习计算机网络的方法论 首先是看视频: 这里我推荐中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版》课程 课程目标_哔哩哔哩_bilibili 教材采用神书《计算机网络(自顶向下方法)》,授课风格更偏向实…

The view model in Acise

在FreeCAD中,借助于Boost Signals2实现了业务层、显示层的分层,但整个FreeCAD Gui层却采用了Coin3D进行渲染,很难进行在这方面进行扩展。 相较之下,在SALOME中,可以为不同的Module指定特定的ViewModel,支持…

uniapp App去除iOS底部安全区域白边

未设置的情况下,iOS底部安全区域白边 如图: 去除方法: 在 mainfest.json 中加入一下代码: "safearea" : {"bottom" : {"offset" : "none"} }, 去除效果展示:

翻译AnyDoor: Zero-shot Object-level Image Customization

摘要 本研究介绍了AnyDoor,这是一款基于扩散模型的图像生成器,能够在用户指定的位置,以期望的形状将目标对象传送到新场景中。与为每个对象调整参数不同,我们的模型仅需训练一次,就能在推理阶段轻松地泛化到多样化的对…

能找伴侣的相亲婚恋平台有哪些?6款值得信赖的恋爱交友软件体验测评

在这个超快节奏的社会里,好多人都忙着搞事业和搞钱,却把终身大事给忽略了。但是随着年龄越来越大,来自长辈和社会的压力也越来越大,因此网络上的相亲交友软件,就成了大多数单身贵族的脱单首选了。下面就来给大家讲讲我…