文章

119

粉丝

0

获赞

1

访问

9.0k

头像
2019年计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年8月26日 18:13
阅读数 46


评分及理由

(1)得分及理由(满分3分)

学生答案的基本设计思想与标准答案一致,包括三步:找到链表中间结点、反转后半段链表、合并两个链表。但学生答案中对于中间结点的定位描述存在不准确之处(如“按中心位置n/2拆分”,未明确说明奇偶情况处理),且合并步骤的循环结束条件(h1 == h2)在链表结点数为偶数时可能无法正确终止(标准答案通过分别遍历两个链表实现合并,无需比较结点地址)。由于整体思路正确,扣1分。得分:2分。

(2)得分及理由(满分8分)

学生代码存在多处逻辑错误:
1. 统计链表长度时,指针p未移动(while循环内无p=p->next),导致死循环。
2. 寻找中间结点时,循环条件为i < n/2 + 1,但初始p指向头结点,实际会移动到第⌊n/2⌋+1个结点(标准答案通过快慢指针直接定位,无需计算长度)。
3. 反转后半部分链表的逻辑错误:代码中试图通过now指针遍历,但反转操作未正确维护指针关系(如p->next未被更新,且反转后未正确连接前半部分)。
4. 合并链表的循环条件(h1 != h2)不适用于所有情况(如偶数长度链表可能无法相遇),且合并操作未考虑结点交替连接的顺序(标准答案通过s和q交替插入)。
由于代码核心逻辑错误较多,仅思路部分得分,实现部分扣分严重。根据错误严重程度,扣6分。得分:2分(其中思路描述部分得2分,代码实现错误扣6分)。

(3)得分及理由(满分2分)

学生正确给出了时间复杂度O(n),与标准答案一致。得分:2分。

题目总分:2+2+2=6分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发