E ae pessoal, beleza?
Estou tentando resolver um exercício da lista da faculdade, mas esse ta tenso hem…rsrsr.
É o seguinte eu tenho que inverter os nós de uma lista linear duplamente encadeada, tenho que trocar o último nó com o primeiro, o segundo com o penúltimo, o terceiro com o antepenúltimo e assim sucessivamente.
Deve-se trocar o valor dos campos ant e prox do nó pra fazer tal inversão. Segue abaixo o código que eu fiz:
public void inverter (){
no p,q,aux1,aux2; int n=0,i=0;
p=inicio;
while (p.getProx()!=null){
p=p.getProx();
n++;
}
q=p; //q recebe final
p=inicio;
n=n/2;
while (i<n){
aux1=p;
p.setProx(q.getProx());
p.setAnt(q.getAnt());
aux2=q;
q.setProx(aux1.getProx());
q.setAnt(aux1.getAnt());
p=aux1.getProx();
q=aux2.getAnt();
i++;
}
}
Então pessoal quais os problemas ai da minha lógica? Estou iniciando agora nesse assunto e ainda estou meio perdido… 