1 条题解

发布要求:学生须先通过本题;教师和管理员可直接维护官方内容。内容应说明核心思路、关键步骤、正确性理由和复杂度。 只粘贴代码不会通过审核。

你尚未通过该题,通过后才能发布题解。

  • 0
    @ 2092-12-6 22:07:44 官方题解 源题同步

    01|2025-03-L5-SC-01

    学生训练答案:A

    原卷事实

    题目比较链表的访问、插删和存储特征。

    必要假设

    按普通链式存储讨论。

    C++11 / 算法语义

    链表不能按下标随机访问,定位元素需沿指针遍历。

    命题预期

    选择不属于链表特点的A。

    推导结论

    训练答案A。

    02|2025-03-L5-TF-02

    学生训练答案:F

    原卷事实

    题目断言链表结点地址必须连续。

    必要假设

    按普通链式存储。

    C++11 / 算法语义

    结点通过指针连接,物理地址无需连续。

    命题预期

    判断为假。

    推导结论

    训练答案F。

    03|2025-06-L5-SC-01

    学生训练答案:C

    原卷事实

    题目比较数组与链表的常见操作效率。

    必要假设

    已知插入或删除位置,不计定位该位置的成本。

    C++11 / 算法语义

    链表重接指针即可完成插入或删除,通常不必搬移后续元素。

    命题预期

    选择C。

    推导结论

    学生训练答案C。

    04|2025-09-L5-SC-01

    学生训练答案:B

    原卷事实

    题目比较链表与数组的适用场景。

    必要假设

    按普通链式存储讨论。

    C++11 / 算法语义

    链表已知位置的插删无需大量搬移元素。

    命题预期

    选择B。

    推导结论

    训练答案B。

    05|2025-12-L5-TF-01

    学生训练答案:F

    原卷事实

    题面同时陈述链表插删和随机查找性质。

    必要假设

    按普通链表。

    C++11 / 算法语义

    链表不能按下标随机访问,需沿指针遍历。

    命题预期

    整体命题为假。

    推导结论

    训练答案F。

    06|2026-03-L5-TF-01

    学生训练答案:T

    原卷事实

    题面明确已知下标或结点指针。

    必要假设

    内存分配视为O(1)。

    C++11 / 算法语义

    数组下标访问和已知链表位置后插入均为常数次操作。

    命题预期

    判断为真。

    推导结论

    训练答案T。

    07|2025-03-L5-SC-02

    学生训练答案:A

    原卷事实

    p的前驱和后继均非空,四个选项给出重连语句。

    必要假设

    指针均有效且delete p后不再访问p。

    C++11 / 算法语义

    删除p应使p->prev->next指向p->next,并使p->next->prev指向p->prev。

    命题预期

    B、C、D均可完成等价重连;A把两侧指针错误地指回原邻接结点。

    推导结论

    训练答案A。

    08|2025-06-L5-SC-02

    学生训练答案:C

    原卷事实

    head、tail和size在构造函数中同步初始化,横线位于返回bool的成员函数。

    必要假设

    链表状态未被其他错误代码破坏。

    C++11 / 算法语义

    head与tail为空指针或size为0都可判断空表;head是Node*,head.data使用点运算符不能通过编译。

    命题预期

    题目问不能填写的项,选择C。

    推导结论

    学生训练答案C。

    09|2025-06-L5-SC-03

    学生训练答案:D

    原卷事实

    非空分支要把newNode接到当前tail之后,再更新tail。

    必要假设

    沿用上题head、tail结构。

    C++11 / 算法语义

    应依次令旧tail->next指向newNode、newNode->prev指向旧tail,最后tail=newNode。

    命题预期

    D的执行顺序保留了旧tail并完成双向链接。

    推导结论

    学生训练答案D。

    10|2025-09-L5-SC-02

    学生训练答案:C

    原卷事实

    代码用dummy统一处理头结点,cur指向待检查结点的前驱。

    必要假设

    链表结构合法。

    C++11 / 算法语义

    应保存cur->next,使cur->next跨过它,然后delete原结点。

    命题预期

    选项C依次完成三步。

    推导结论

    训练答案C。

    11|2025-09-L5-SC-03

    学生训练答案:A

    原卷事实

    初始slow=head、fast=head->next。

    必要假设

    链表结构合法。

    C++11 / 算法语义

    每轮slow走1步且fast走2步,对应A。

    命题预期

    选择A。

    推导结论

    训练答案A。

    12|2025-09-L5-TF-04

    学生训练答案:T

    原卷事实

    题目列举链表插删、访问、内存与缓存特性。

    必要假设

    按普通链式存储。

    C++11 / 算法语义

    已知位置插删高效,随机访问需遍历,指针增加空间且局部性较差。

    命题预期

    判断为T。

    推导结论

    训练答案T。

    13|2025-12-L5-SC-01

    学生训练答案:C

    原卷事实

    代码从head开始遍历循环单链表。

    必要假设

    head指向一个有效的非空循环单链表。

    C++11 / 算法语义

    do-while先访问当前结点,再在p回到head时停止。

    命题预期

    选项C恰好访问每个结点一次。

    推导结论

    训练答案C。

    14|2025-12-L5-SC-02

    学生训练答案:B

    原卷事实

    tail指向当前尾块,新块的prev应指向旧tail。

    必要假设

    已调用init且tail有效。

    C++11 / 算法语义

    构造newBlock后应令tail=newBlock。

    命题预期

    选项B保持完整向前链。

    推导结论

    训练答案B。

    15|2025-12-L5-SC-03

    学生训练答案:C

    原卷事实

    双链表结点含prev,单链表实现需从head寻找前驱。

    必要假设

    待删结点有效;单链表中的待删结点可由head到达且不是需特殊处理的头结点。

    C++11 / 算法语义

    双链表重连为O(1),单链表寻找前驱为O(n)。

    命题预期

    选择C。

    推导结论

    训练答案C。

    16|2026-03-L5-SC-01

    学生训练答案:D

    原卷事实

    题目比较三类链表性质。

    必要假设

    采用带头结点循环单链表的标准定义。

    C++11 / 算法语义

    空表时头结点next回指自身;其余绝对说法均不成立。

    命题预期

    选择D。

    推导结论

    训练答案D。

    17|2026-03-L5-SC-02

    学生训练答案:C

    原卷事实

    需把s接到p原前驱与p之间。

    必要假设

    p、s有效且p->prev有效。

    C++11 / 算法语义

    依次设置s->next=p、s->prev=p->prev、p->prev->next=s、p->prev=s。

    命题预期

    C完整保持双向连接。

    推导结论

    训练答案C。

    18|2026-03-L5-SC-03

    学生训练答案:B

    原卷事实

    删除del后cur应继续指向其前驱位置。

    必要假设

    输入链表无环且所有结点有效。

    C++11 / 算法语义

    先令cur->next=del->next,再delete del,可连续删除。

    命题预期

    选择B。

    推导结论

    训练答案B。

    19|2026-06-L5-SC-01

    学生训练答案:B

    原卷事实

    题目要求在head后插入newNode。

    必要假设

    head非空且链表结构合法。

    C++11 / 算法语义

    先令newNode指向原后继,再令head指向newNode。

    命题预期

    选项B。

    推导结论

    训练答案B。

    20|2026-06-L5-TF-01

    学生训练答案:T

    原卷事实

    题目比较数组与链表的典型存储布局。

    必要假设

    按常见连续数组和动态链表实现。

    C++11 / 算法语义

    数组元素连续,链表结点由指针连接可不连续。

    命题预期

    判断为T。

    推导结论

    训练答案T。

    21|2026-06-L5-SC-02

    学生训练答案:C

    原卷事实

    循环链表不会以nullptr结束。

    必要假设

    head非空且环回head。

    C++11 / 算法语义

    do-while先访问头结点,回到head时停止。

    命题预期

    选项C。

    推导结论

    训练答案C。

    22|2026-06-L5-SC-03

    学生训练答案:A

    原卷事实

    p是非首尾结点。

    必要假设

    p及相邻结点有效。

    C++11 / 算法语义

    前驱next接后继、后继prev接前驱,再delete p。

    命题预期

    选项A。

    推导结论

    训练答案A。

    23|2025-03-L5-TF-01

    学生训练答案:T

    原卷事实

    官网原文先重接p->next,再写删除p->next;官方答案T。

    必要假设

    学生校注版引入q保存原后继。

    C++11 / 算法语义

    先复制q的数据、令p->next=q->next,再delete q,能在不知道头结点时O(1)逻辑删除非尾结点且不误删后续结点。

    命题预期

    命题预期是保存并删除原后继。

    推导结论

    学生训练答案T;不得把引入q后的校注版写成官网原文。

    24|2025-03-L5-SC-03

    学生训练答案:B

    原卷事实

    官网题干明确称为双向循环链表;官方答案B仅设置head->next=tail与tail->prev=head。

    必要假设

    学生校注版仅把两处“双向循环链表”改为“双向链表”,并沿用结点默认外侧指针为空的普通哨兵结构。

    C++11 / 算法语义

    真正的双向循环哨兵结构还需head->prev=tail与tail->next=head;非循环双向哨兵链表下B是唯一最佳项。

    命题预期

    命题预期按非循环双向哨兵链表选择B。

    推导结论

    学生训练答案B;必须显著展示双版本差异,不得把校注版冒充官网原文。

    25|2025-06-L5-SC-04

    学生训练答案:A

    原卷事实

    循环定位到待删除结点p,prev指向其前驱。

    必要假设

    需有n>=1且k>=2,使删除时prev已在计数循环中被赋值。

    C++11 / 算法语义

    应先令prev->next跳过p,再delete p,最后把p更新为prev->next;删除后不能再解引用旧p。

    命题预期

    A满足安全的重接、删除和移动顺序。

    推导结论

    学生训练答案A;解析显著说明k>=2的必要假设。

    26|2025-12-L5-TF-03

    学生训练答案:T

    原卷事实

    官网原文明确写先用p->next覆盖p的值与next,然后删除p->next;官方答案T。

    必要假设

    若按命题意图,需要先保存原p->next结点指针。

    C++11 / 算法语义

    按字面先重连p->next再delete p->next会删除新的后继,原后继泄漏;正确做法是保存q=p->next,复制q的数据并令p->next=q->next,再delete q。

    命题预期

    命题预期考查复制后继并删除后继的O(1)技巧。

    推导结论

    校注版训练答案T;与官方答案相同,但题面明确补足临时指针与正确删除顺序。

    27|2026-06-L5-TF-02

    学生训练答案:F

    原卷事实

    原卷给出四条指针赋值。

    必要假设

    插入前head->next为原首结点。

    C++11 / 算法语义

    若先执行head->next=p,后续读取head->next会读到p,可能形成错误自指,故顺序并非任意。

    命题预期

    判断为F。

    推导结论

    训练答案F。

    • 1

    信息

    ID
    78
    时间
    1000ms
    内存
    256MiB
    难度
    轻松上手
    标签
    递交数
    0
    已通过
    0
    上传者