我实现了这个函数来检查树是否是二叉搜索树,但它一直抛出段错误
bool checkBST(Node* root) {
if(root == nullptr){
return true;
}
else{
if(root->data <= root->left->data){
return false;
}
else if(root->data >= root->right->data){
return false;
}
}
return true&&checkBST(root->left)&&checkBST(root->right);
}
在这里:
root->left->data
你怎么知道
root->left
不是空的?如果是,您将在尝试访问data
成员时调用未定义的行为,该行为可能通过 seg 错误表现出来。