文章
986
粉丝
5
获赞
20
访问
254.0k

评分及理由
(1)得分及理由(满分4分)
得分:3分
理由:学生答案基本正确,采用深度优先搜索(前序遍历)遍历所有路径,记录路径并计算路径和,符合题目要求。但存在两个问题:1)当sum等于k时,学生答案说"返回结果",但实际代码中并没有返回,而是继续遍历,这里描述不准确;2)没有考虑到节点权值可能为负数的情况,当sum大于k时仍应继续遍历(题目要求中明确说明),但学生答案没有提及这一点。这两点导致扣1分。
(2)得分及理由(满分7分)
得分:5分
理由:代码整体框架正确,实现了前序遍历和路径记录,但在关键逻辑上有错误:1)在递归调用时,path_len参数是按值传递的,在递归返回后path_len--操作不会影响上一层的path_len值,这会导致回溯机制失效;2)没有考虑到节点权值可能为负数的情况,当sum大于k时仍应继续遍历;3)代码中包含了main函数,但题目只要求实现FindValidPaths函数。由于存在逻辑错误,扣2分。
(3)得分及理由(满分2分)
得分:1分
理由:时间复杂度分析错误,学生说是O(n),但实际应该是O(n×h),其中h为树高,因为每次计算路径和需要O(pathLen)时间。空间复杂度分析正确,为O(h)。扣1分。
题目总分:3+5+1=9分
登录后发布评论
暂无评论,来抢沙发