点击打开链接
class Solution {
public:
TreeNode* deleteNode(TreeNode* root, int key) {
if(!root) return NULL;
if(root->val > key){
root->left = deleteNode(root->left, key);
}
else if(root->val < key){
root->right = deleteNode(root->right, key);
}
else{
if(!root->left || !root->right){
root =(root->left)? root->left : root->right;
}
else{
TreeNode *cur = root->right;
while (cur->left) {
cur = cur->left;
}
root -> val =cur->val;
root->right = deleteNode(root->right, cur->val);
}
}
return root;
}
};