5
/ \ 2 9 / \ / 1 4 7 Diameter: 5 (1-2-5-9-7 or 4-2-5-9-7)
int height(struct node* root)
{
if(root == NULL)
return 0;
int lh = height(root->left);
int rh = height(root->right);
return 1 + MAX(lh, rh);
}
int diameter(struct node* root)
{
if(root == NULL)
return 0;
int lheight = height(root->left);
int rheight = height(root->right);
int ldia = diameter(root->left);
int rdia = diameter(root->right);
return MAX(1 + lheight + rheight, MAX(ldia, rdia));
}
No comments:
Post a Comment