题目描述
方法思路
class Solution {
public TreeNode deleteNode(TreeNode root, int key) {
if(root == null) return root;
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 != null && root.right != null){
root.val = findMin(root.right).val;
root.right = deleteNode(root.right, root.val);
}else
root = (root.left != null) ? root.left : root.right;
return root;
}
public TreeNode findMin(TreeNode root){
if(root == null) return root;
TreeNode cur = root;
while(cur.left != null)
cur = cur.left;
return cur;
}
}