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 二叉树的直径相关推荐

  1. LeetCode 543. 二叉树的直径(DFS)

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

  2. LeetCode 543二叉树的直径-简单

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

  3. leetcode - 543. 二叉树的直径

    给定一棵二叉树,你需要计算它的直径长度.一棵二叉树的直径长度是任意两个结点路径长度中的最大值.这条路径可能穿过根结点. 示例 : 给定二叉树 解题思路:使用递归,注意递归和迭代的区别 class So ...

  4. leetcode 543. 二叉树的直径(Java版)

    题目 https://leetcode-cn.com/problems/diameter-of-binary-tree/ 题解 1:暴力法 暴力解法:遍历这棵树,当以每个节点为根时,计算 距离,取最大 ...

  5. 【LeetCode】【HOT】543. 二叉树的直径(递归)

    [LeetCode][HOT]543. 二叉树的直径 文章目录 [LeetCode][HOT]543. 二叉树的直径 package hot;class TreeNode{int val;TreeNo ...

  6. LeetCode Algorithm 543. 二叉树的直径

    543. 二叉树的直径 Ideas 这题貌似也在左神算法里见过. 基本思想就是递归,根节点从左子树获得一个想要的信息,从右子树获得一个想要的信息,然后对两个信息进行处理. 其实可以把直径分成两半看:从 ...

  7. 543. 二叉树的直径 golang

    文章目录 543. 二叉树的直径 example 正确解法 question 代码(wrong) 543. 二叉树的直径 概要: 借鉴了这个题的代码.可是有一个测试用例过不去 https://blog ...

  8. 543.二叉树的直径

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

  9. 543. 二叉树的直径

    543. 二叉树的直径 描述 给定一棵二叉树,你需要计算它的直径长度.一棵二叉树的直径长度是任意两个结点路径长度中的最大值.这条路径可能穿过也可能不穿过根结点. 示例 : 给定二叉树 1/ \2 3/ ...

最新文章

  1. Logstash5.4.1解析日志报错处理
  2. xshell突出显示集
  3. mysql多实例安装配置演示
  4. java用循环方式实现和计算机玩猜拳的程序
  5. linux的lnmp环境,Ubuntu 16.04 LTS下LNMP环境配置简述
  6. shared_ptrT make_shared( Args ... args );
  7. C# -- HttpWebRequest 和 HttpWebResponse 的使用
  8. vue 全家桶 - 前端工程化
  9. java 交互式 shell_Java9 Shell工具(JShell)
  10. python实例变量命名规则_python变量命名规则
  11. c语言根号11取值两位小数,用C语言将一个数开根号后再取倒数的方法
  12. PaddleOCR实现车牌识别系统
  13. 美团集群调度系统的云原生实践
  14. AUTOSAR--UDS诊断报文
  15. 【搞定Go语言】第3天22:常用的HTTP服务压测工具介绍
  16. 如何查html病毒svchost.exe,网站快照劫持又一例:svchost.exe病毒快照劫持的解决办法...
  17. 瀚高数据库企业版中的权限问题
  18. Shel编程之免交互5
  19. Spring Cloud Loadbalancer
  20. 基于Ti Omap3x 分析v4l2架构

热门文章

  1. 测试——解决MonkeyRunner无法运行的问题
  2. FlashFXP v3.5.4注册码+FlashFXP v3.6.0注册码+FlashFXP v3.7.2.build.1266注册码
  3. 【JavaScript算法实践】最短路径算法
  4. 计蒜客 数独(简洁)
  5. 2022亚太内容分发大会,阿里云获评“边缘云领航企业”
  6. 数据分析指标和术语概述
  7. SpringBoot_静态资源目录及访问
  8. 2022-2027年中国农村电网改造行业市场深度分析及投资战略规划报告
  9. 计算机专业要求特质,计算机专业特点的六种解读.pdf
  10. 使用canvas制作刮刮卡效果(1)