GESP 六级 · GESP 202512 C++ 六级 第 22 题

判断题 · 答案 A

← 整套速查表 GESP 六级 全部真题

题目

下面的函数能正确判断一棵树是不是二叉排序树(左边的数字要比当前数字小,右边的数字要比当前数字大)。

bool isBST(TreeNode* root, int minVal, int maxVal) {
    if (!root) return true;
    if (root->val <= minVal || root->val >= maxVal)
        return false;
    return isBST(root->left, minVal, root->val) &&
           isBST(root->right, root->val, maxVal);
}
答案:A

解题思维

逻辑代数运算:与(∧/×)、或(∨/+)、非(┐/¬)。德摩根律:┐(A∧B)=┐A∨┐B,┐(A∨B)=┐A∧┐B。

常见错误

注意德摩根律的正确应用:┐(A∧B)=┐A∨┐B,┐(A∨B)=┐A∧┐B。C++中逻辑运算符有短路求值特性。

详细解析(节选)

【考点】二叉排序树定义|递归遍历|参数传递

1. 🎯 考纲定位

GESP 六级「数据结构」模块,二叉树专题。命题人卡住的是"以为递归参数会共享"的误区——六级考生常把递归当循环,误以为minVal/maxVal是全局状态,其实C++里是值传递,每层递归各自独立。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断