code: private final V finish_removal(BinTreeNode<K,V> node, BinTreeNode<K,V> prev,
  				   int son, BinTreeNode<K,V> m) {
  	if(m != null) { // set up the links for m
  	    m.left  = node.left;
  	    m.right = node.right;
  	}
  	if(prev == null)
  	    root = m;
  	else {
  	    if(son == 0)
  		prev.left = m;
  	    else
  		prev.right = m;
  	}
  
  	return node.value;
      }
docs: BinTreeNode that should replace node in the tree.