删除有两个孩子的二叉排序树节点时,给定C++代码横线处应填入什么?
其中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;}
正在加载题目数据…
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析