Lista Duplamente Encadeada Duvida!

boa tarde , estou tentando remover um No da lista , mas estou enfrentando problemas pois meu metodo de remoçao esta removendo mais de um No , e nao consigo ver meu Erro .

A se puderem me dar uma força de como Ordenar a Lista Duplamente Encadeada em Ordem alfabetica , eu irei Agradecer mais ainda .

segue o codigo .

[code] public No Busca(String nome)
{
No aux=inicio;
while ((aux!=null))
{

		if ((aux!=null) && (aux.getInfo().getNome().equalsIgnoreCase(nome))){
			return aux;
		}
		
		
		aux=aux.getProx();
	}
	return aux;

}

//no remove temos 5 casos a considerar
public void removeLista(No elemento)
{
	No aux;
	aux=elemento;
	if (aux!=null)//1- se existe o No a ser deletado
	{
		if (inicio!=fim)//2- se so existe um No na lista
		{
			if (aux==inicio)//3- se o No esta no comeco
			{
				inicio=aux.getProx();
				aux.getProx().setAnt(null);
			}
			else
				if (aux==fim)//4- se o No esta no fim
				{
					fim=aux.getAnt();
					aux.getAnt().setProx(null);
				}
				else//5- se o no esta no meio
				{
					aux.getAnt().setProx(aux.getProx());
					aux.getProx().setAnt(aux.getAnt());
				}
			aux.setAnt(null);
			aux.setProx(null);
		}
		else
		{
			inicio=null;
			fim=null;
		}
	}
	else
		System.out.println("Elemento nao encontrado");
}[/code]