文章

292

粉丝

0

获赞

2

访问

78.7k

头像
2012年(408)计算机学科专业基础综合试题 - 第42题回答
数据结构
发布于2025年11月22日 17:43
阅读数 91

时间复杂度为O(N),空间复杂度为O(N)


评分及理由

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

得分:3分

理由:学生的算法思想基本正确,提出了通过计算链表长度差来对齐指针的方法,与标准答案思路一致。但在描述中存在不严谨之处:①"短的单词从头开始遍历"表述不准确,实际上两个指针都应该从对齐后的位置开始同步移动;②"i从|length(str1)-length(str2)|+1开始遍历"中的"+1"应该是让长链表指针跳过长度差个结点,但表述不够清晰。扣1分。

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

得分:6分

理由:代码实现基本正确,但存在以下问题:

  • 在长链表分支中只移动了i指针,但没有初始化j指针(j应该指向str2的头结点)
  • 在短链表分支中只移动了j指针,但没有初始化i指针(i应该指向str1的头结点)
  • 循环条件中的"j->next != i->next"应该改为"i != j"或者"p != q"
  • 返回语句应该是返回当前结点而不是下一个结点
  • 函数返回类型应该是Node*而不是int

这些逻辑错误影响了算法的正确性,扣2分。

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

得分:0分

理由:学生回答时间复杂度为O(N),但未明确说明N的含义。实际上算法时间复杂度应为O(len1+len2),学生回答不够准确。空间复杂度回答O(N)也不正确,实际应为O(1)。扣1分。

题目总分:3+6+0=9分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发