方法
class Solution {public:int right_h(TreeNode* root){while(root->left){root=root->left;}return root->val;}int left_h(TreeNode* root){while(root->right){root=root->right;}return root->val;}TreeNode* deleteNode(TreeNode* root, int key) {if(root==nullptr){return root;}if(root->val>key){root->left=deleteNode(root->left,key);}else if(root->val<key){root->right=deleteNode(root->right,key);}else{if(!root->right&&!root->left){root=nullptr;}else if(root->right){int temp=right_h(root->right);root->val=temp;root->right=deleteNode(root->right,root->val);}else if(root->left){int temp=left_h(root->left);root->val=temp;root->left=deleteNode(root->left,root->val);}}return root;}};
