文章

49

粉丝

0

获赞

0

访问

1.8k

头像
2012年计算机学科专业基础综合试题 - 第42题回答
数据结构
发布于2025年10月5日 23:22
阅读数 26


评分及理由

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

学生给出了正确的算法设计思想:先计算两个链表的长度,然后让较长的链表先走长度差值的步数,实现对齐,最后同步遍历直到找到相同结点。这与标准答案思路一致。得4分。

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

代码实现基本正确,但存在以下问题:
1. 在while(m != n)循环中,当m和n相等时会跳过对齐步骤,这是正确的,但循环内部的条件判断和for循环逻辑正确。
2. 主要问题在于对齐后同步遍历的循环条件:while(p != q)应该改为while(p != NULL && p != q),因为如果两个链表没有公共后缀,p和q可能同时为NULL,原代码可能陷入死循环或返回错误结果。
3. 函数Find的返回类型应该是Node*,代码中已正确声明。
4. Length函数实现正确,计算带头结点的链表长度。
考虑到核心逻辑正确,只是缺少对无公共后缀情况的处理,扣2分。得6分。

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

学生正确分析了时间复杂度为O(m+n),与标准答案一致。得1分。

题目总分:4+6+1=11分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发