文章
122
粉丝
1
获赞
100
访问
29.9k

评分及理由
(1)得分及理由(满分5分)
得分:2分
理由:学生的基本设计思想是通过遍历链表获取长度,然后再次遍历找到倒数第k个节点。这种方法需要两遍扫描链表,而题目要求"尽可能高效的算法",标准答案采用一遍扫描的双指针方法。虽然思路正确,但效率不如标准答案,因此扣3分。
(2)得分及理由(满分5分)
得分:3分
理由:学生给出了详细的实现步骤,包括计算链表长度和再次遍历查找的具体过程。步骤描述基本清晰,但存在以下问题:①没有明确说明需要两次遍历;②在第二次遍历时,p指针初始指向list(头结点),但标准答案中应该指向第一个数据节点。扣2分。
(3)得分及理由(满分5分)
得分:2分
理由:代码实现存在以下逻辑错误:①函数没有在所有路径都返回值,当k值不合法时没有返回0;②当k值超过链表长度时,程序会访问空指针的data域,导致错误;③结构体定义中next字段的类型声明不一致(struct Node* next应为struct LinkListNode* next);④第二次遍历时p初始指向list(头结点),这样会多遍历一个节点。代码基本框架正确,但逻辑错误较多,扣3分。
题目总分:2+3+2=7分
登录后发布评论
暂无评论,来抢沙发