GESP 五级 · GESP 202403 C++ 五级 第 4 题

选择题 · 答案 B · 考点:链表

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

题目

下面的代码片段用于在双向链表中删除一个节点。请在横线处填入( ),使其能正确实现相应功能。

void deleteNode(DoublyListNode*& head, int value) {
    DoublyListNode* current = head;
    while (current != nullptr && current->val != value) {
        current = current->next;
    }
    if (current != nullptr) {
        if (current->prev != nullptr) {
            ________________________ // 在此处填入代码
        } else {
            head = current->next;
        }
        if (current->next != nullptr) {
            current->next->prev = current->prev;
        }
        delete current;
    }
}
答案:B

考点

链表 讲解 →链表 真题汇总 →

解题思维

位运算:&(与)、|(或)、^(异或)、~(取反)、<<(左移)、>>(右移)。异或性质:a^a=0,a^0=a。

常见错误

区分逻辑运算(&&,||,!)和位运算(&,|,~,!)。左移右移注意符号位的处理(算术右移vs逻辑右移)。负数的位运算要小心。

详细解析(节选)

【考点】指针操作|双向链表遍历

1. 🎯 考纲定位

GESP 五级《指针与链表》核心考点。命题人专门卡住「链表删除」这个高频易错点——能遍历链表、会递归写树,但一到改指针就原地懵圈。

同考点真题

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