文章

141

粉丝

0

获赞

3

访问

17.7k

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


评分及理由

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

学生作答的基本设计思想正确:使用快慢指针找到中间结点,断开链表,反转后半部分,然后合并两个链表。思路与标准答案一致,因此得3分。

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

学生代码存在多处逻辑错误:
1. 快慢指针初始指向head(头结点),但标准答案中快慢指针应从head->next开始(因为头结点不存储数据),但学生代码中直接使用head,这会导致中间结点定位错误(多算头结点)。扣2分。
2. 循环条件`while (fast != NULL || fast->next != NULL)`有逻辑错误,应为`&&`而非`||`,且需考虑fast为NULL时fast->next会出错。扣2分。
3. 反转链表部分代码错误:`cur->next = NULL;`和`slow->next = cur;`未正确维护反转链表的头(应使用新头结点而非slow->next),且反转后未更新头指针。扣2分。
4. 合并链表部分:`cur = head;`后直接操作,但head是头结点,合并时应跳过头结点;且合并逻辑未正确处理交替插入(标准答案需保存后继指针)。扣2分。
综上,代码部分扣8分,但思路正确且部分实现(如快慢指针和合并意图)正确,给予基础分2分。

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

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

题目总分:3+2+2=7分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发