|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目描述:
- 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。
-  
- 示例 :
- 给定二叉树
- 1
- / \
- 2 3
- / \
- 4 5
- 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。
-  
- 注意:两结点之间的路径长度是以它们之间边的数目表示。
- 来源:力扣(LeetCode)
- 链接:https://leetcode-cn.com/problems/diameter-of-binary-tree
- 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
复制代码
- /**
- * Definition for a binary tree node.
- * struct TreeNode {
- * int val;
- * TreeNode *left;
- * TreeNode *right;
- * TreeNode(int x) : val(x), left(NULL), right(NULL) {}
- * };
- */
- class Solution {
- public:
- int comput(TreeNode*root, int &res){
- if(root == NULL)return 0;
- int left = comput(root -> left, res);
- int right = comput(root -> right, res);
- res = max(res, right + left);
- return 1 + max(right, left);
- }
- int diameterOfBinaryTree(TreeNode* root) {
- if(root == NULL)return 0;
- int res = 0;
- comput(root, res);
- return res;
- }
- };
复制代码
参考链接:https://leetcode-cn.com/problems ... ju-bian-liang-yu-b/
https://leetcode-cn.com/problems ... ion/543-by-ikaruga/ |
|