删除有两个孩子的二叉排序树节点时,给定C++代码横线处应填入什么?

sb266787 单选题 共 个子题

其中findMax和findMin分别为寻找树的最大值和最小值的函数。

struct TreeNode {    int val;    TreeNode* left;    TreeNode* right;    TreeNode(int x): val(x), left(nullptr), right(nullptr) {}};TreeNode* deleteNode(TreeNode* root, int key) {    if (!root) return nullptr;    if (key < root->val) {        root->left = deleteNode(root->left, key);    }    else if (key > root->val) {        root->right = deleteNode(root->right, key);    }    else {        if (!root->left) return root->right;        if (!root->right) return root->left;        TreeNode* temp = ____________; // 在此处填写代码        root->val = temp->val;        root->right = deleteNode(root->right, temp->val);    }    return root;}
A

root->left

B

root->right

C

findMin(root->right)

D

findMax(root->left)

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧