543. 二叉树的直径

Ideas

这题貌似也在左神算法里见过。

基本思想就是递归,根节点从左子树获得一个想要的信息,从右子树获得一个想要的信息,然后对两个信息进行处理。

其实可以把直径分成两半看:从根节点到左子树的叶子结点的最长路径+根节点到右子树的叶子结点的最长路径-1。

然后就简单了,问题就转变成了求二叉树的深度。

Code

C++

class Solution {int ans = 1;int depth(TreeNode* rt) {if (rt == NULL) {return 0;}int l_depth = depth(rt->left);int r_depth = depth(rt->right);ans = max(ans, l_depth + r_depth + 1);return max(l_depth, r_depth) + 1;}
public:int diameterOfBinaryTree(TreeNode* root) {depth(root);return ans - 1;}
};

LeetCode Algorithm 543. 二叉树的直径相关推荐

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

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

  2. Java实现 LeetCode 543 二叉树的直径

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

  3. 543. 二叉树的直径 golang

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

  4. 543.二叉树的直径

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

  5. 543. 二叉树的直径

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

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

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

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

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

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

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

  9. 【LeetCode笔记】543. 二叉树的直径(Java、dfs、二叉树)

    文章目录 题目描述 思路 & 代码 题目描述 思路 & 代码 由这个结论考虑:直径中一定有一个父结点,那么当前直径长度就是: 当前父结点的左子树深度 + 右子树深度 那么,只要遍历所有 ...

最新文章

  1. oracle中set怎么用,sqlplus命令格式以及sqlplus中set的用法与解释-Oracle
  2. java array arraylist_java 基础 array arraylist..越详细越好。
  3. storm从入门到放弃(一),storm介绍
  4. android studio安装在其他盘,Android Studio配置移动到D盘(亲测)
  5. DM9000 寄存器的定义
  6. java-number2
  7. 线下活动 × 深圳 | 大咖云集!第11届国际博士生论坛报名开启
  8. hough变换检测直线 matlab,求能够运行的用matlab进行hough变换直线检测的程序。急!...
  9. 52 两个链表的第一个公共结点(时间空间效率的平衡)
  10. 图书馆管理系统用户端心得
  11. 如何用outlook express 收发邮件
  12. 《Office 365开发入门指南》上市说明和读者服务
  13. c 语言银行排队系统,C++实现银行排队系统
  14. ASP.NET状态管理之六(缓存Cache)
  15. android串口service,Android串口操作库:EZ-SerialPort
  16. VARCHART XGantt 甘特图中的数据表介绍
  17. Unity 高级程序员应该具备怎样的能力?要怎样成长为 Unity 高级程序员?
  18. 国家统计局长称今年经济增速可能超去年
  19. JavaScript防流量劫持-前端安全
  20. 2023年比较经典的软件测试工程师面试题(自我总结)

热门文章

  1. MyBatis Generator Example.Criteria 查询条件复制
  2. 记一次MyBatis的错误
  3. python——函数 10、函数的嵌套
  4. TCP/IP协议(二)tcp/ip基础知识
  5. SQL之rand,round,floor,ceiling,cast小数处理函数
  6. Nginx——事件驱动机制(雷霆追风问题,负载均衡)
  7. java web基础编程题_云课堂javaweb微专业Java基础测试题3
  8. Java黑皮书课后题第9章:*9.3(使用Date类)编写程序创建一个Date对象,设置它的流逝时间分别为...,然后使用toString()方法分别显示上述日期
  9. android有关的笔记,android学习笔记1——webview相关
  10. 【2012百度之星/初赛上】C:集合的交与并