題目描述:
https://leetcode-cn.com/problems/diameter-of-binary-tree/
解題思路:
左子樹的深度加上右子樹的深度就是通過該節(jié)點的直徑;
找出其中節(jié)點的直徑的最大值;
代碼:
class Solution {
public:
int diameterOfBinaryTree(TreeNode* root) {
int m=0;
maxPath(root, m);
return m;
}
int maxPath(TreeNode* root, int& m)
{
if(!root)
return 0;
int left_height = maxPath(root->left, m);
int right_height = maxPath(root->right, m);
m = max(m, left_height+right_height);
return max(left_height, right_height)+1;
}
};