文章
49
粉丝
0
获赞
0
访问
1.8k
评分及理由
(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分
登录后发布评论
暂无评论,来抢沙发