private BSTNode<T> removeNode(BSTNode<T> tree) {
	if (tree.getLeft() == null)
	    return tree.getRight();
	if (tree.getRight() == null) 
	    return tree.getLeft();
	T data;
	data = getPredecessor(tree.getLeft());
	tree.setInfo(data);
	tree.setLeft(recRemove(data, tree.getLeft()));  
	return tree;
    }