文章

1

粉丝

0

获赞

0

访问

530

头像
2025 年 9 月第 1 次 408 月考试卷 - 第41题回答
数据结构
发布于2025年9月21日 17:48
阅读数 530


void inorder(TreeNode* root, int* A, int* flag, int* index) {
    if (root == NULL) return;
    inorder(root->left, A, flag, index);
    // 存储值标记是否左右孩子均存在
    A[*index] = root->val;
    flag[*index] = (root->left != NULL && root->right != NULL); // 左右孩子均存在则标记为1
    (*index)++;
    inorderTraversal(root->right, A, flag, index);
}

 


评分及理由

(1)得分及理由(满分3分)

学生作答仅提供了一个中序遍历函数,用于将结点值存入数组并标记是否存在左右子树,但未给出完整的算法设计思想。题目要求统计满足特定条件的结点数,而学生的代码片段仅完成了数据收集,未涉及最小距离的计算和比较。因此,基本设计思想描述不完整,无法体现对问题的理解。得0分。

(2)得分及理由(满分9分)

学生代码只实现了中序遍历和标记左右子树存在情况,但缺少核心逻辑:计算左子树和右子树与当前结点的最小距离,并比较是否相等。此外,函数原型应为`int countNodes(TreeNode* root)`,但学生未提供该函数;代码中还存在函数名错误(`inorderTraversal`应为`inorder`)。因此,算法描述不完整且存在错误,得0分。

(3)得分及理由(满分2分)

学生未分析时间复杂度,得0分。

题目总分:0+0+0=0分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发