Java实现 LeetCode 543 二叉树的直径
543. 二叉树的直径
给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。
示例 :
给定二叉树
1/ \
2 3
/ \
4 5
返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。
注意:两结点之间的路径长度是以它们之间边的数目表示。
PS:
二叉树的直径不一定过根节点,因此需要去搜一遍所有子树(例如以root,root.left, root.right…为根节点的树)对应的直径,取最大值。
root的直径 = root左子树高度 + root右子树高度
root的高度 = max {root左子树高度, root右子树高度} + 1
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/
class Solution {private int max = 0;public int diameterOfBinaryTree(TreeNode root) {dfs(root);return max;}private int dfs(TreeNode root) {if (root == null) {return 0;}int leftHeight = dfs(root.left), rightHeight = dfs(root.right);max = Math.max(leftHeight + rightHeight, max);return Math.max(leftHeight, rightHeight) + 1;}
}
Java实现 LeetCode 543 二叉树的直径相关推荐
- LeetCode 543. 二叉树的直径(DFS)
1. 题目 给定一棵二叉树,你需要计算它的直径长度.一棵二叉树的直径长度是任意两个结点路径长度中的最大值.这条路径可能穿过根结点. 示例 : 给定二叉树1/ \2 3/ \ 4 5 返回 3, 它的长 ...
- 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/ ...
最新文章
- Logstash5.4.1解析日志报错处理
- xshell突出显示集
- mysql多实例安装配置演示
- java用循环方式实现和计算机玩猜拳的程序
- linux的lnmp环境,Ubuntu 16.04 LTS下LNMP环境配置简述
- shared_ptrT make_shared( Args ... args );
- C# -- HttpWebRequest 和 HttpWebResponse 的使用
- vue 全家桶 - 前端工程化
- java 交互式 shell_Java9 Shell工具(JShell)
- python实例变量命名规则_python变量命名规则
- c语言根号11取值两位小数,用C语言将一个数开根号后再取倒数的方法
- PaddleOCR实现车牌识别系统
- 美团集群调度系统的云原生实践
- AUTOSAR--UDS诊断报文
- 【搞定Go语言】第3天22:常用的HTTP服务压测工具介绍
- 如何查html病毒svchost.exe,网站快照劫持又一例:svchost.exe病毒快照劫持的解决办法...
- 瀚高数据库企业版中的权限问题
- Shel编程之免交互5
- Spring Cloud Loadbalancer
- 基于Ti Omap3x 分析v4l2架构
热门文章
- 测试——解决MonkeyRunner无法运行的问题
- FlashFXP v3.5.4注册码+FlashFXP v3.6.0注册码+FlashFXP v3.7.2.build.1266注册码
- 【JavaScript算法实践】最短路径算法
- 计蒜客 数独(简洁)
- 2022亚太内容分发大会,阿里云获评“边缘云领航企业”
- 数据分析指标和术语概述
- SpringBoot_静态资源目录及访问
- 2022-2027年中国农村电网改造行业市场深度分析及投资战略规划报告
- 计算机专业要求特质,计算机专业特点的六种解读.pdf
- 使用canvas制作刮刮卡效果(1)