Leetcode 543.二叉树的直径

Java实现 LeetCode 543 二叉树的直径 543. 二叉树的直径 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。 示例 : 给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 注意:两结点之间的路径长度是以它们之间边的数目表示。 PS: 二叉树的直径不一定过根节点,因此需要去搜一遍... 阅读详情

给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。

示例 :
给定二叉树

      1
     / \
    2   3
   / \     
  4   5    

返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。

注意:两结点之间的路径长度是以它们之间边的数目表示。

tips:递归,开一个全局变量存储最大直径,经过某个节点的最长路径为左子树的高度+右子树的高度(left+rignt)

class Solution {
public:
	int maxDia=0;
    int diameterOfBinaryTree(TreeNode* root) {
		dfs(root);
		return maxDia;
    }
	int dfs(TreeNode* root) {
		if(root==nullptr) {
			return 0;
		}
		int left = dfs(root->left);
		int right = dfs(root->right);
		maxDia = max(maxDia,left+right);
		return max(left,right)+1;
	}
};
LeetCode 543. 二叉树的直径 题目: 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。 示例 : 给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 注意:两结点之间的路径长度是以它们之间边的数目表示。 解题思路 ... 阅读详情

相关推荐

力扣543:二叉树的直径【C++】

题目 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 分析 这道题的难度在LeetCode上被归为简单,但我觉得这道题无论是思路上还是代码的写法上,还有具有中等难度的程度的。 这道题要求我们计算直径长度,首先我们要将求直径长度转换成一个好求的量,笔者将求直径长度转换为求二叉树的高度。这个其实是不难理解的,因为直径其实就是经过边的个数,每经过一条边,相当于高度增加1。 但是题中说明了这条路径可能穿过根结点,因此最长的路径显然是

The Gao的博客 648

【Leetcode 每日一题】543. 二叉树的直径

题目描述 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。 示例 : 给定二叉树 1 / \ 2 3 / \ 4 5 返回3, 它的长度是路径 [4,2,1,3] 或者[5,2,1,3]。 注意:两结点之间的路径...

ColorGalaxy 494

UDS诊断入门第一课:手把手教你玩转0x10会话控制服务(附ISO14229实战解析)

刚接触汽车电子诊断的工程师们,往往会被厚厚的ISO 14229标准文档和各种专业术语吓退。但就像学习编程要从"Hello World"开始一样,掌握UDS协议的最佳切入点就是0x10诊断会话控制服务。这个看似简单的服务,实际上是整个诊断系统的"钥匙"——它决定了ECU(电子控制单元)当前处于何种工作模式,直接影响着其他诊断服务的可用性。 在实际车辆诊断中,ECU默认处于DefaultSession模式,这种模式下许多高级诊断功能是被禁用的。想象一下你正在开发一个需要刷写ECU固件的工具,如果连最基本的会

weixin_30402343的博客 392

543. 二叉树的直径

543. 二叉树的直径https://leetcode.cn/problems/diameter-of-binary-tree/难度简单1063给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例 : 给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3

肥不溜秋大梅子 354

为什么AI时代的优秀组织,都在学习Meta的Pod结构?看完秒懂

当AI技术重塑产业格局,企业协作正面临前所未有的挑战——层级繁琐、跨部门内耗、迭代滞后,传统组织模式早已难以跟上技术革新的步伐。作为全球AI原生企业的标杆,Meta独创的Pod组织模式,用“小而美”的自治单元打破困局,成为AI时代高效协作的典范。本文将从定义、运作、价值到未来演进,全面拆解Pod模式,为企业组织变革提供可参考的思路与路径。德鲁克曾说:“组织的功能就是让平凡的人做平凡的事。”而Meta Pod打破这一局限,通过去中心化、指标导向、跨界融合,让优秀人才产生“化学反应”。

Kiss_AIHR的博客 1166

滞回比较器电路详细分析

滞回比较器是一种用于检测两个不同电压值并使比较器输出高电平或低电平的电路。滞回比较器的特点是具有迟滞特性,即当输入电压高于某一阈值时,比较器输出高电平,当输入电压低于另一阈值时,比较器输出低电平,而在这两个阈值之间,比较器的输出保持不变。比较器通常有两个模拟电压输入端UIN+和UIN-以及一个数字状态输出端UOUT。当UIN+大于UIN-时,UOUT为高电平;当UIN+小于UIN-时,UOUT为低电平。根据具体的系统定义,这两种电位的具体数值可以有所不同。

LuDvei的博客 2万+

【leetcode】二叉树 - 二叉树的直径

题目: 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 示例 : 给定二叉树 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 注意:两结点之间的路径长度是以它们之间边的数目表示。 思路一: 因为找的是其直径 也就是找边最长的一条路径 此次递归是自上而下 通过根节点找到左子树的最长路径+右子树最长路径 单纯分析左子树的最长路径(再次递归) 也就是左子树的最长路径+右子树最长路径(再次递归) 。。

码农研究僧的博客 721

Seedance 2.5、HappyHorse 1.1与豆包Seed 2.1:一周内三大模型技术参数分析

音频生成延续原生音画同步架构,将文本、画面、音频统一序列建模,生成过程同步产出匹配口型的原声音频,支持中、英、日、韩、德、法、阿拉伯7种语言唇形对齐,无需二次调音。从行业趋势看,30秒直出、4K分辨率、7语种唇形同步正在成为视频生成的标配,编程Agent化和多模态理解正在成为语言模型的标配。技术狂奔的同时,监管在同步收紧。我理解这里的关键在于,视频生成模型的商业化落地不仅取决于生成质量,更取决于推理效率——生成一段15秒1080P视频需要多少秒、消耗多少算力,直接决定了模型的商用可行性。

lichunchuan1的博客 323

【leetcode】543.二叉树的直径

给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 示例 : 给定二叉树 1 / \ 2 3 / \ 4 5 返回3, 它的长度是路径 [4,2,1,3] 或者[5,2,1,3]。 注意:两结点...

Alexling0的博客 374

植物叶绿体基因组分析全攻略:从共线性到密码子偏好性

本文全面解析植物叶绿体基因组分析流程,从共线性分析到密码子偏好性研究。详细介绍了叶绿体基因组结构特征、测序数据获取与质量控制、基因组组装与注释方法,以及比较基因组学和进化分析技术。特别关注IR区边界变异分析和选择压力评估,为植物系统发育研究和物种鉴定提供实用指南。

weixin_28475533的博客 221

uniapp | vue2 | vue3 - 解决调用天地图功能服务时 http 网络请求报错 net::ERR ABORTED 503(Service Temporarily Unavailabl)

vue,uni-app,天地图,请求报错,503,请求失败,map.tianditu,天地图503,天地图请求503,接口503错误怎么办,vue天地图,uniAPP天地图,获取定位接口服务器报错503,获取当前定位,定位功能,IP属地定位,天地图服务器报错,如何解决报错,net::ERRABORTED503(ServiceTemporarilyUnavailabl),GET,POST,服务暂时不可用,react天地图,一直等待吗,报错怎么办,定位报错,轨迹,经纬度,天地图服务器503,在vue2

🏆 前端领域优质创作者 4438

第二十一题 543. 二叉树的直径

543. 二叉树的直径 题目描述 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 示例 给定二叉树 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 注意 两结点之间的路径长度是以它们之间边的数目表示。 思路 递归 进行 dfs /** * Definition for a binary tree node. * function TreeNode(val, left, right) { *

不会敲代码的车手写的博客 220

PICO640红外探测器配置模块verilog

Ulis pico 640红外探测器配置模块

Go Forward Forever! 2031

543.力扣LeetCode_二叉树的直径

本文介绍了两种计算二叉树直径的算法。方法1采用前序遍历枚举节点,通过递归计算每个节点的左右子树深度之和来更新最大路径长度,时间复杂度较高。方法2优化为后序遍历,在递归计算子树深度的同时,实时更新全局最长路径,只需一次遍历即可完成计算,时间复杂度为O(n)。两种方法都利用了“路径长度等于左右子树深度之和”这一关键性质,但方法2通过深度优先搜索的递归特性,实现了更高效的计算。

2401_82472941的博客 483

V90伺服 EPOS模式下回原(详细配置+SCL源代码)

/ 输出上限 100.0%rSetPoint : Real;// 设置目标值工程量。// 通道转换参考值。Td : Real;

RXXW_Dor的博客 2662

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

leetCode543 二叉树的直径

leetCode543 二叉树的直径 从根节点开始遍历,依次找到左子树的最大路径和右子树的最大路径。树的直径则为左子树最大路径和右子树最大路径之和。 public class leetCode543 { int distance = 0; public int diameterOfBinaryTree(TreeNode root) { if (root ==...

m0_38123034的博客 472

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Leetcode 543. 二叉树的直径

Leetcode 543. 二叉树的直径1、问题分析2、问题解决3、总结 1、问题分析 题目链接:https://leetcode-cn.com/problems/diameter-of-binary-tree/   本质上就是一个二叉树的遍历问题。代码我已经进行了详细的注释,理解应该没有问题,读者可以作为参考,如果看不懂(可以多看几遍),欢迎留言哦!我看到会解答一下。 2、问题解决   笔者以C++方式解决。 #include "iostream" using namespace std; #incl

珍惜 8840

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

《LeetCode力扣练习》第543题 二叉树的直径 Java

《LeetCode力扣练习》第543题 二叉树的直径 Java 一、资源 题目: 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 示例 : 给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 注意:两结点之间的路径长度是以它们之间边的数目表示。 来源:力扣(LeetCode) 链

XRT_knives的博客 232

【leetcode】543. 二叉树的直径

对节点 2:l_len = 0 + 1 = 1,r_len = 0 + 1 = 1,self.ans = max(0, 1 + 1) = 2,返回 max(1, 1) = 1。对节点 1:l_len = 1 + 1 = 2,r_len = 0 + 1 = 1,self.ans = max(2, 2 + 1) = 3,返回 max(2, 1) = 2。最终返回 self.ans = 3,表示二叉树的直径为 3,即从节点 4 到节点 5,通过节点 2 再到节点 1,该路径包含 3 个节点。

qq_38473254的博客 1078

leetcode-543 二叉树的直径

leetcode543 二叉树的直径 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。 示例 : 给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 注意:两结点之间的路径长度是以它们之间边...

IT荻的博客 784

求二叉树上结点的路径_LeetCode 力扣官方题解 | 543. 二叉树的直径

力扣 543.二叉树的直径(点击查看题目)力扣​leetcode-cn.com题目描述给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。​示例:给定二叉树 1 / 2 3 / 4 5返回 3, 它的长度是路径 [4,2,...

weixin_39791152的博客 263

#力扣 LeetCode543. 二叉树的直径 #在所有 Java 提交中击败了 100.00% 的用户 @FDDLC

题目描述: 543. 二叉树的直径 - 力扣(LeetCode) (leetcode-cn.com) Java代码一: class Solution { public int getTreeHeight(TreeNode root){ if(root==null)return 0; return Integer.max(getTreeHeight(root.left),getTreeHeight(root.right))+1; } pub.

LiuXingchang的博客 368

LeetCode 543. 二叉树的直径 | C++语言版

给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。

weixin_45992021的博客 531

leetcode 543. 二叉树的直径

leetcode 543. 二叉树的直径 题目详情 题目链接 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。 示例: 给定二叉树 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 注意:两结点之间的路径长度是以它们之间边的数目表示。 我的代码 #include <vector> ...

qq_33789406的博客 118

【LeetCode 热题 100】543. 二叉树的直径——DFS

Problem:题目:给你一棵二叉树的根节点,返回该树的 直径。二叉树的 直径 是指树中任意两个节点之间最长路径的 长度。这条路径可能经过也可能不经过根节点 root。两节点之间路径的 长度 由它们之间边数表示。

最短的捷径就是绕远路,绕远路才是我的最短捷径。 2179

精选力扣500题 第50题 LeetCode 543. 二叉树的直径【c++详细题解】

目录1、题目2、思路3、c++代码4、java代码 1、题目 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 示例 : 给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 注意: 两结点之间的路径长度是以它们之间边的数目表示。 2、思路 (递归,树的遍历) O(n)O(n)O(n) 在这

林深不见鹿 的博客 736
上一篇: Leetcode 235. 二叉搜索树的最近公共祖先
下一篇: LeetCode 338.比特位计数
wenkun97
博客等级 码龄10年 15粉丝 139原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值