int diameter(node *temp){
if(temp==NULL){
return 0;
}
if(temp->right==NULL && temp->left==NULL){
return 1;
}
if(temp->right!=NULL && temp->left!=NULL){
return 1 + diameter(temp->right) + diameter(temp->left);
}
if(temp->left==NULL){
return 1+diameter(temp->right);
}
if(temp->right==NULL){
return 1+diameter(temp->left);
}
}
Why isn’t this function returning the correct diameter?