LeetCode543. Diameter of Binary Tree
2017-05-04 12:56
399 查看
Description
Given a binary tree, you need to compute the length of the diameter of the tree. The diameter of a binary tree is the length of the longest path between any two nodes in a tree. This path may or may not pass through the root.Example:
Given a binary tree
1
/ \
2 3
/ \
4 5
Return
3, which is the length of the path
[4,2,1,3]or
[5,2,1,3].
my program
思路:int depth(TreeNode* root)求树的高度,
int depthDiff(TreeNode* root)求root的左子树和右子树的高度和。递归求树的
diameter
class Solution { public: int depth(TreeNode* root) { if (root == NULL) return 0; return max(depth(root->left),depth(root->right))+1; } int depthDiff(TreeNode* root) { if(root == NULL) return 0; return depth(root->left)+depth(root->right); } int diameterOfBinaryTree(TreeNode* root) { if(root == NULL) return 0; return max(depthDiff(root),max(diameterOfBinaryTree(root->left),diameterOfBinaryTree(root->right))); } };
Submission Details
106 / 106 test cases passed.
Status: Accepted
Runtime: 19 ms
Your runtime beats 18.82 % of cpp submissions.
other methods
C++ Solution with DFSclass Solution { public: int maxdiadepth = 0; int dfs(TreeNode* root){ if(root == NULL) return 0; int leftdepth = dfs(root->left); int rightdepth = dfs(root->right); if(leftdepth + rightdepth > maxdiadepth) maxdiadepth = leftdepth + rightdepth; return max(leftdepth +1, rightdepth + 1); } int diameterOfBinaryTree(TreeNode* root) { dfs(root); return maxdiadepth; } };
C++_Recursive_with brief explanation
class Solution { public: int diameterOfBinaryTree(TreeNode* root) { if(root == nullptr) return 0; int res = depth(root->left) + depth(root->right); return max(res, max(diameterOfBinaryTree(root->left), diameterOfBinaryTree(root->right))); } int depth(TreeNode* root){ if(root == nullptr) return 0; return 1 + max(depth(root->left), depth(root->right)); } };
相关文章推荐
- Leetcode 545. Boundary of Binary Tree
- 【leetcode】104. Maximum Depth of Binary Tree
- leetcode 111. Minimum Depth of Binary Tree
- LeetCode - 111. Minimum Depth of Binary Tree
- [LeetCode]226. Invert Binary Tree
- LeetCode 111. Minimum Depth of Binary Tree
- 【LeetCode】104.Maximum Depth of Binary Tree
- Leetcode 111. Minimum Depth of Binary Tree
- leetcode111.MinimumDepthofBinary Tree
- 【Leetcode】543. Diameter of Binary Tree
- Leetcode-545. Boundary of Binary Tree
- LeetCode: 104. Maximum Depth of Binary Tree
- LeetCode 111. Minimum Depth of Binary Tree
- LeetCode-226. Invert Binary Tree
- LeetCode 543. Diameter of Binary Tree
- [LeetCode] 111. Minimum Depth of Binary Tree
- 【LeetCode】104. Maximum Depth of Binary Tree
- LeetCode: Binary Tree Sum相关题目合集
- leetcode 543. Diameter of Binary Tree
- [Leetcode] 111. Minimum Depth of Binary Tree