June 21, 2022 · 1 min read
https://leetcode.com/problems/diameter-of-binary-tree/
Leetcode expects diamater of tree to be number of edges, ∴ return res - 1
class Solution {
int diameter = 0;
public:
int diameterOfBinaryTree(TreeNode* root) {
diam(root);
return diameter - 1;
}
int diam(TreeNode* root) {
if(root == nullptr) return 0;
int ld = diam(root->left);
int rd = diam(root->right);
int childD = max(ld, rd) + 1;
int currD = ld + rd + 1;
diameter = max({diameter, childD, currD});
return childD;
}
};