LeetCode 543. 二叉树的直径(DFS)
1. 题目
给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。
示例 :
给定二叉树1/ \2 3/ \ 4 5
返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。注意:两结点之间的路径长度是以它们之间边的数目表示。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/diameter-of-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
class Solution {public:int diameterOfBinaryTree(TreeNode* root) {int maxDiameter = 0;diameter(root,maxDiameter);return maxDiameter;}int diameter(TreeNode* root, int &maxDiameter) {if(root == NULL)return 0;int left = diameter(root->left,maxDiameter);int right = diameter(root->right,maxDiameter);int curMax = left+right;//包含当前根节点的直径为L+Rif(curMax > maxDiameter)maxDiameter = curMax;return max(left,right)+1;//给别人用的话,只能选取一侧,再加上root}
};
LeetCode 543. 二叉树的直径(DFS)相关推荐
- Java实现 LeetCode 543 二叉树的直径
543. 二叉树的直径 给定一棵二叉树,你需要计算它的直径长度.一棵二叉树的直径长度是任意两个结点路径长度中的最大值.这条路径可能穿过根结点. 示例 : 给定二叉树 1/ \ 2 3 / \ 4 5 ...
- LeetCode 543二叉树的直径-简单
给定一棵二叉树,你需要计算它的直径长度.一棵二叉树的直径长度是任意两个结点路径长度中的最大值.这条路径可能穿过也可能不穿过根结点. 示例 : 给定二叉树 1/ \2 3/ \ 4 5 返回 3, 它的 ...
- leetcode - 543. 二叉树的直径
给定一棵二叉树,你需要计算它的直径长度.一棵二叉树的直径长度是任意两个结点路径长度中的最大值.这条路径可能穿过根结点. 示例 : 给定二叉树 解题思路:使用递归,注意递归和迭代的区别 class So ...
- leetcode 543. 二叉树的直径(Java版)
题目 https://leetcode-cn.com/problems/diameter-of-binary-tree/ 题解 1:暴力法 暴力解法:遍历这棵树,当以每个节点为根时,计算 距离,取最大 ...
- 【LeetCode】【HOT】543. 二叉树的直径(递归)
[LeetCode][HOT]543. 二叉树的直径 文章目录 [LeetCode][HOT]543. 二叉树的直径 package hot;class TreeNode{int val;TreeNo ...
- LeetCode Algorithm 543. 二叉树的直径
543. 二叉树的直径 Ideas 这题貌似也在左神算法里见过. 基本思想就是递归,根节点从左子树获得一个想要的信息,从右子树获得一个想要的信息,然后对两个信息进行处理. 其实可以把直径分成两半看:从 ...
- 543. 二叉树的直径 golang
文章目录 543. 二叉树的直径 example 正确解法 question 代码(wrong) 543. 二叉树的直径 概要: 借鉴了这个题的代码.可是有一个测试用例过不去 https://blog ...
- 543.二叉树的直径
543.二叉树的直径 给定一棵二叉树,你需要计算它的直径长度.一棵二叉树的直径长度是任意两个结点路径长度中的最大值.这条路径可能穿过也可能不穿过根结点. 本题需要明确二叉树的直径计算方法: 二叉树的直 ...
- 543. 二叉树的直径
543. 二叉树的直径 描述 给定一棵二叉树,你需要计算它的直径长度.一棵二叉树的直径长度是任意两个结点路径长度中的最大值.这条路径可能穿过也可能不穿过根结点. 示例 : 给定二叉树 1/ \2 3/ ...
最新文章
- 具有absolute、relative、fixed的div设置宽度和高度的效果
- 红曲面怎么做_新年就要“红”运当头 买款高颜值红色旗舰让年味更浓
- Spring第二讲--利用组件注解符精简Spring配置文件
- ​【Python】Python中好用的命令行参数解析模块
- Ⅶ:教你一招利用zookeeper作为服务的配置中心
- PHP中exec()函数执行系统命令失败
- 台安变频器n2按键说明_台安N2变频器说明书.pdf
- AMFPHP快速入门
- JAVA复习(对象的克隆、正则表达式)
- 使用了JDK自带的jconsole查看Tomcat运行情况
- RocketMQ : UpdateTopicSubCommand command failed connect to xxx:10909 failed
- ROS indigo在Ubuntu上的安装教程
- 走过 Google 2005年[zt]
- php微信公众平台开发获取access_token,用CURL出现certificate verify failed错误的解决方法...
- 【正点原子MP157连载】第十三章 外部中断实验-摘自【正点原子】STM32MP1 M4裸机CubeIDE开发指南
- 微信小程序下载pdf到本地的坑
- LiquidCrystal-I2C
- 海贝思蓝牙接收器Linux,Hagibis海备思 蓝牙音频接收 耳机怎么样,评测
- 皮克定理和任意多边形的面积公式
- 云安全架构连载之一-Azure整体架构及安全亮点详解
热门文章
- 基于C++中常见内存错误的总结
- xcode左侧不显示工程文件目录,提示NO Filter Results
- java程序可分为两个基本文件_1 Java语言概述答案
- psql切换schema_PostgreSQL教程(二):模式Schema详解
- 【原】webpack--loaders,主要解释为什么需要loaders和注意事项
- UILabel添加图片之富文本的简单应用
- zbb20180117 汉字转拼音 pinyin4
- springaop----springaop的使用(一)
- ResultMap和ResultType在使用中的区别
- angularjs 表单验证 和 页面初始化闪烁