文章

449

粉丝

0

获赞

0

访问

87.0k

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


评分及理由

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

学生给出的算法思路是使用双指针方法,但描述的方法与标准答案不同。学生描述的是"交叉遍历"方法:当指针到达链表末尾时,跳转到另一个链表的头部继续遍历。这种方法确实可以找到两个链表的第一个公共结点,因为两个指针最终会走过相同的总长度(m+n),从而在公共结点处相遇。思路正确且能解决问题,因此不扣分。得4分。

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

学生的代码实现存在以下问题:

  1. 代码中使用了"交叉遍历"方法,但实现有误:当P1或P2为空时,应该跳转到另一个链表的头结点,但学生代码中跳转到了另一个链表的第一个结点(str2->next和str1->next),而不是头结点。这会导致在链表长度不同时无法正确找到公共结点。
  2. 代码没有考虑两个链表没有公共后缀的情况,当没有公共结点时,循环可能无法正确终止。
  3. 代码中使用了int类型的data,但题目中的单词存储应该是字符类型。

由于存在逻辑错误,扣3分。得5分。

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

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

题目总分:4+5+1=10分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发