文章
18
粉丝
0
获赞
3
访问
477

评分及理由
(1)得分及理由(满分5分)
学生答案的基本设计思想是:先遍历链表得到链表长度 length,然后通过 length - k + 1 找到倒数第 k 个结点。这种方法需要遍历链表两次(一次计算长度,一次定位结点),而题目要求“尽可能高效的算法”,标准答案采用双指针一遍扫描的方法,效率更高。学生的思路虽然正确,但不符合题目对高效性的要求,因此扣2分。得分:3分
(2)得分及理由(满分5分)
学生详细实现步骤描述较为混乱,没有清晰说明如何遍历链表计算长度,也没有准确描述如何定位倒数第 k 个结点。步骤描述中出现了“访问头结点,遍历访问头结点”等重复表述,逻辑不够清晰。相比标准答案的详细步骤,学生的描述缺乏条理性和准确性,因此扣3分。得分:2分
(3)得分及理由(满分5分)
学生代码实现存在多处逻辑错误:
1. 函数参数不完整,缺少 k 参数
2. 计算 length 的循环中 list 指针没有移动,会导致死循环
3. 在 else 分支中,定位结点的循环条件为 length - k + 1,但实际应该是 length - k(从头结点开始)
4. 变量声明重复(List* p = list 出现了两次)
5. 代码格式混乱,缺少必要的分号和括号
虽然基本思路正确,但代码实现存在严重逻辑问题,因此扣4分。得分:1分
题目总分:3+2+1=6分
登录后发布评论
暂无评论,来抢沙发