鱼C论坛

 找回密码
 立即注册
查看: 1193|回复: 0

[技术交流] C++刷LeetCode(543. 二叉树的直径)【递归】

[复制链接]
发表于 2020-7-13 10:19:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

  2.  

  3. 示例 :
  4. 给定二叉树

  5.           1
  6.          / \
  7.         2   3
  8.        / \     
  9.       4   5   
  10. 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。

  11.  

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

  13. 来源:力扣(LeetCode)
  14. 链接:https://leetcode-cn.com/problems/diameter-of-binary-tree
  15. 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
复制代码

  1. /**
  2. * Definition for a binary tree node.
  3. * struct TreeNode {
  4. *     int val;
  5. *     TreeNode *left;
  6. *     TreeNode *right;
  7. *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
  8. * };
  9. */
  10. class Solution {
  11. public:
  12.     int comput(TreeNode*root, int &res){
  13.         if(root == NULL)return 0;
  14.         int left = comput(root -> left, res);
  15.         int right = comput(root -> right, res);
  16.         res = max(res, right + left);
  17.         return 1 + max(right, left);
  18.     }
  19.     int diameterOfBinaryTree(TreeNode* root) {
  20.         if(root == NULL)return 0;
  21.         int res = 0;
  22.         comput(root, res);
  23.         return res;
  24.     }
  25. };
复制代码


参考链接:https://leetcode-cn.com/problems ... ju-bian-liang-yu-b/
https://leetcode-cn.com/problems ... ion/543-by-ikaruga/

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 15:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表