题目链接:543. 二叉树的直径
代码如下:
//树的直径:两节点最短路径的最大值,两节点之间的路径长度=他们之间变得数目
//求树的直径就是求二叉树中最长的最短路径
class Solution {
public:
int diameterOfBinaryTree(TreeNode* root)
{
int MAX=0;//保存两节点最短路径的最大值
depth(root,MAX);
return MAX;
}
int depth(TreeNode* root,int& MAX)
{
if(root==nullptr)
return 0;
int l=depth(root->left,MAX);
int r=depth(root->right,MAX);
MAX = max(MAX,l+r);
return max(l,r)+1;
}
};