GESP 五级 · GESP 202603 C++ 五级 第 3 题

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

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

题目

下面函数用“哑结点”统一处理删除单向链表中的头结点与中间结点。横线处应填( )。

struct Node{
    int val;
    Node* next;
    Node(int v):val(v),next(nullptr){}
};

Node* eraseAll(Node* head, int x){
    Node dummy(0);
    dummy.next = head;
    Node* cur = &dummy;
    while(cur->next){
        if(cur->next->val == x){
            Node* del = cur->next;
            ________
            delete del;
        }else cur = cur->next;
    }
    return dummy.next;
}
答案:B

考点

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

解题思维

根据上下文和C++语法规则确定空缺处应填的内容,关注函数调用参数、表达式和返回值类型。

常见错误

填空时注意语法完整性:分号、括号匹配、函数参数类型和个数、返回值类型。

详细解析(节选)

【考点】链表操作|指针重连

1. 🎯 考纲定位(考点定位)

本题对应《GESP 考试大纲》五级「数据结构与算法」模块中单向链表的基本操作。命题人刻意选择「删除节点」这一经典场景,因为五级考生最容易在链表指针操作上栽跟头——要么忘记重连导致断链,要么误删哑结点破坏返回值。这道题就是专门卡住「指针关系更新」这个知识盲区的。

同考点真题

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