文章
85
粉丝
0
获赞
2
访问
3.9k
评分及理由
(1)得分及理由(满分3分)
学生答案的基本设计思想正确:使用先序遍历递归计算WPL,通过深度参数传递当前深度,遇到叶子节点时累加权值与深度的乘积。思路与标准答案一致,得3分。
(2)得分及理由(满分4分)
学生给出的二叉树结点数据类型定义正确:包含weight、left和right指针,与标准答案一致。但注意学生使用了"left"和"right"而非标准答案的"lchild"和"rchild",这是允许的变量命名差异,不扣分。得4分。
(3)得分及理由(满分6分)
学生代码整体正确,但存在两个小问题:
1. 函数func中声明了局部变量left和right(BiTNode *left, *right;),但未使用,这是冗余代码,但不影响逻辑,不扣分。
2. 使用了全局变量ans,而标准答案使用static变量(先序遍历版本)或局部变量(层次遍历版本)。虽然全局变量能实现功能,但破坏了封装性,且多次调用WPL函数时会导致ans累积错误(因为全局变量未重置)。但题目未要求多次调用的情况,且算法逻辑正确,因此扣1分。
其他部分正确:递归终止条件、深度传递、叶子节点判断都正确。得5分。
题目总分:3+4+5=12分
登录后发布评论
暂无评论,来抢沙发