文章
27
粉丝
0
获赞
0
访问
1.3k
评分及理由
(1)得分及理由(满分5分)
学生答案的基本设计思想是通过遍历链表获取总长度n,然后计算正数第n-k+1个结点。这种方法需要遍历链表两次(一次求长度,一次找结点),而标准答案要求尽可能高效(一趟扫描)。虽然思路正确,但效率较低,不符合题目“尽可能高效”的要求。因此扣2分,得3分。
(2)得分及理由(满分5分)
详细实现步骤描述了先求链表长度n,再通过n-k+1定位结点。步骤正确但效率低,且未体现一趟扫描的优化。扣2分,得3分。
(3)得分及理由(满分5分)
代码实现存在逻辑错误:
1. 初始化n=1错误(头结点不计入长度,应从0开始或从第一个数据结点开始计数)。
2. 指针p初始化错误(`LNode = *p, p = list;` 语法错误,应为 `LNode *p = list->link;`)。
3. 遍历时未跳过表头结点(直接使用list会包含头结点,导致计数和定位错误)。
扣3分(2分用于逻辑错误,1分用于效率问题),得2分。
题目总分:3+3+2=8分
登录后发布评论
暂无评论,来抢沙发