<分区>
我知道我不应该在这里问这些类型的问题,但我被困住了,无法弄清楚问题所在。所以, 我写了这段代码,它将树的根作为输入,并检查给定的树是否是 BST。但是我没有通过几个测试用例,我不明白为什么?如果有人能告诉我我的代码有什么问题,将不胜感激。 这是问题 Is This a Binary Search Tree? 的链接
这是代码。
bool checkBST(Node* root) {
if(root == NULL)
return false;
int d = root->data;
bool r1 = true,r2=true;
if(root->left != NULL){
if(d < root->left->data)
r1 = false;
else
r1 = checkBST(root->left);
}
if(root->right != NULL){
if(d > root->right->data)
r2 = false;
else
r2 = checkBST(root->right);
}
return r1 && r2;
}