Estou precisando fazer um inserção ordenada em lista duplamente encadeada mas so esta ordenando os dois primeiros

public boolean inserirOrdenado(int chave) {
TadCelulaDuplEnc aux=primeiro.prox;
TadCelulaDuplEnc ant=primeiro;
TadCelulaDuplEnc ult=aux.prox;

	 System.out.println("imprimindo os valores de forma ordenada \n");
	 

	  
	 while(aux !=null && aux.valor<chave) {
		 ant=aux;
		  aux=ult;
			
       
	  if(ant.valor > aux.valor && aux.valor > ult.valor ) {
		  return false;
        }
	  else {
		  TadCelulaDuplEnc nova = new TadCelulaDuplEnc(); // criar nova celula
           ant.prox = nova; // faz a anterior apontar pra nova celula
           nova.prox = aux.prox; //faz a nova celula apontar pra proxima depois de aux
           aux.prox=ult.prox;
           nova.valor = ant.valor; //nova celula recebe o valor da celula anterior
           ant.valor = aux.valor; // celula anterior recebe o valor da celula aux
           aux.valor=ult.valor;
          return true;
	  }
	 


			  
	 }
	 return false;
}

Rafael, bom dia.

Bem vindo ao fórum. Da próxima vez posta sua dúvida no corpo da mensagem do que no título (título = resumo) para facilitar a citação.
:wink:

Sobre teu código, lembre que sua função retorna apenas verdadeiro ou falso, e que todas as variáveis criadas dentro de uma função só existem durante ela própria. Então nada adianta você tentar ordenar algo e não fazer nada com aquela ordenação, concorda?

Novamente, seja bem vindo ao fórum! E quanto tiver mais experiência, lembre de ajudar os novatos aqui!