CSP-J 入门级 · CSP 2023 入门级第一轮 第 4 题

选择题 · 答案 A · 考点:链表、动态内存分配、指针与引用

← 整套速查表 CSP-J 入门级 全部真题

题目

假设有一个链表的节点定义如下:

struct Node { int data; Node* next; }

现在有一个指向链表头部的指针:Node* head。如果想要在链表中插入一个新节点,其成员 data 的值为 $42$,并使新节点成为链表的第一个节点,下面哪个操作是正确的?

答案:A

考点

链表 讲解 →链表 真题汇总 →动态内存分配指针与引用

解题思维

这题考链表头部插入,拿到题先想:新节点要当第一个,所以得先占内存、赋值42、让它指向原头,最后把head指过来。记住‘先连后断’,别漏更新head。

常见错误

最容易错在以为只要把新节点插到head后面就行,忘了把head指针本身挪到新节点上(选项D),那样新节点永远在第二个位置。还有把42赋给原头节点(选项B)或者只改了next没动data(选项C),这些都会导致链表数据错乱或结构没变。

详细解析(节选)

这题考什么

题目给的是CSP入门级链表插入题,核心就是指针操作:创建节点、赋值、链接、更新头指针。四个选项里只有一个顺序和逻辑都对的。

概念:链表头插法

链表每个节点有data和next,head指向第一个节点。要在头部插入新节点,必须让新节点成为新的第一个,所以新节点的next要指向原来的head,然后把head指向新节点。顺序不能乱:先连后断,否则旧链表会断掉。

同考点真题

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