GESP 六级 · GESP 202606 C++ 六级 第 6 题

选择题 · 答案 B

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

题目

以下函数 check() 用于判断一棵二叉树是否为( )。

bool check(TreeNode* root) {
    if (!root) return true;
    queue<TreeNode*> q;
    q.push(root);
    bool hasNull = false;
    while (!q.empty()) {
        TreeNode* cur = q.front();
        q.pop();
        if (cur == nullptr) {
            hasNull = true;
        } else {
            if (hasNull) return false;
            q.push(cur->left);
            q.push(cur->right);
        }
    }
    return true;
}
答案:B

解题思维

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

常见错误

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

详细解析(节选)

【考点】二叉树遍历|完全二叉树判定|队列 BFS

🎯 考纲定位

GESP 六级,二叉树遍历,完全二叉树判定。命题人卡住的是学生混淆满二叉树与完全二叉树的弱点——满二叉树看度数,完全二叉树看层级填充顺序。这类题在六级里高频出现,因为五级只考基础遍历,六级开始强调"判定条件"而非单纯"输出结果"。

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