我正在学习树,但我不明白为什么会出现此错误,之前它运行良好。我找不到错误。我已经实现了一个用于查找二叉树是否平衡的程序。如果所有节点的左树高和右树高差小于或等于1,则二叉树是平衡的
struct node{
int data;
struct node* left;
struct node* right;
node(int val){
data = val;
left = NULL;
right = NULL;
}
};
int height(node* root){
if (root==NULL)
{
return 0;
}
int lh = height(root->left);
int rh = height(root->right);
return max(lh,rh)+1;
}
bool isbalanced(node* root){
if (root=NULL)
{
return true;
}
if (isbalanced(root->left)==false)
{
return false;
}
if (isbalanced(root->right)==false)
{
return false;
}
int lh = height(root->left);
int rh = height(root->right);
if (abs(lh-rh)<=1)
{
return true;
/* code */
}
return false;
}
int main(){
node* root = new node(1);
root->left = new node(2);
root->right = new node(3);
root->left->left = new node(4);
root->left->right = new node(5);
root->right->left = new node(6);
root->right->right = new node(7);
if (isbalanced(root))
{
cout<<"balanced";
}
else{
cout<<"Unbalanced";
}
return 0;
}