GESP 六级 · GESP 202403 C++ 六级 第 15 题

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

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

题目

下面的代码片段用于反转单链表,请进行( )修改,使其能正确实现相应功能。

ListNode* reverseLinkedList(ListNode* head) {
    ListNode* prev = nullptr;
    ListNode* current = head;
    while (current != nullptr) {
        ListNode* next = current->next;
        current->next = next;
        prev = current;
        current = next;
    }
    return prev;
}
答案:A

考点

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

解题思维

链表分为单向/双向/循环链表,插入删除O(1),但查找O(n)。注意指针操作的顺序,防止断链。

常见错误

链表操作要特别注意指针修改的顺序。例如在节点前插入时,先新节点→next = 当前→next,再当前→next = 新节点。顺序颠倒会导致断链。

详细解析(节选)

【考点】链表反转|指针重连逻辑|循环边界条件

1. 考纲定位

本考点位于 GESP 六级 C++ 大纲的"数据结构与算法"模块。命题人专门选这道链表反转题,是因为它表面是经典算法题,实则卡住大部分考生对指针操作顺序的理解——链表反转是面试高频考点,但代码里一个符号写错就全盘皆输。

同考点真题

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