class Solution {
public:
int dfs(TreeNode* root,int& ret){
if(!root)return 0;
int tmp=0;
int l=dfs(root->left,ret);
int r=dfs(root->right,ret);
ret=max(ret,l+r);
return max(l,r)+1;
}
int diameterOfBinaryTree(TreeNode* root) {
int ret=0;
dfs(root,ret);
return ret;
}
};