删除最小值:
有两种情况,一直访问到左节点为null,有两种情况,当有节点不为null时,需要将其右孩子替换过去。但是在递归时,不管右孩子有没有我们都可以将其赋值过去。同理最大值~
返回的都是当前数的根节点
寻找最小节点
private Node minimun(Node node){
if(node.left == null) return node;
return minimun(node.left);
}
寻找最大节点,
private Node maximun(Node node){
if(node.right == null) return node;
return maximun(node.right);
}
删除最小节点
private Node removeMin(Node node){
if(node.left == null){
Node rightNode = node.right; //不需要右边是否有值
node.right = null; //不再指向了其他点
count --;
return rightNode;