cpp
1struct TreeNode {
2 int val;
3 TreeNode* left;
4 TreeNode* right;
5 TreeNode(int x): val(x), left(nullptr), right(nullptr) {}
6};
cpp
1TreeNode* deleteNode(TreeNode* root, int key) {,[object Object],
2if (!root) return nullptr;,[object Object],
3if (key < root->val) {,[object Object],
4root->left = deleteNode(root->left, key);,[object Object],
5},[object Object],
6else if (key > root->val) {,[object Object],
7root->right = deleteNode(root->right, key);,[object Object],
8},[object Object],
9else {,[object Object],
10if (!root->left) return root->right;,[object Object],
11if (!root->right) return root->left;,[object Object],
12TreeNode* temp = ______; // 在此处填写代码,[object Object],
13root->val = temp->val;,[object Object],
14root->right = deleteNode(root->right, temp->val);,[object Object],
15},[object Object],
16return root;,[object Object],
17},[object Object],