需要协助调试BST验证功能

时间:2017-04-07 23:00:01

标签: c++

我被赋予了这个功能来解决一项任务,但我无法弄清楚它的错误,似乎正在进行适当的检查,请帮忙吗?

bool validateBST(Node * root){
    if (root == nullptr){
        return true;
    }

    if (root->right != nullptr){
        if (root->value < root->right->value){
            return false;
        }
        if (!validateBST(root->right)){
            return false;
        }
    }
    if (root->left != nullptr){
        if (root->value > root->left->value){
            return false;
        }
        if (!validateBST(root->left)){
            return false;
        }
    }
    return true;
}

1 个答案:

答案 0 :(得分:0)

问题在于,虽然它检查了亲子关系,但却没有检查祖父母与孙子女的关系。特别是something like this不正确但会通过该validateBST函数