La solución de la profe en Java, reverseLinkedList método que va en la clase ListaEnlazada realizada en la sección previa, Java no permite la asignación paralela como en Python, por lo cual se usa la variable temp:
public void reverseLinkedList() {
Nodo anterior = null;
Nodo temp = null;
Nodo cabezaInicial = this.cabeza;
Nodo colaInicial = this.cola;
while (this.cabeza != null) {
temp = this.cabeza.siguiente; // Guardamos el Nodo cabeza.siguiente
this.cabeza.siguiente = anterior;
if ((this.cabeza.equals(colaInicial))) {
/*
* Cuando llegamos al útlimo Nodo de la lista, que ahora es cabeza,
* al Nodo cola le asignamos el Nodo cabeza inicial, es decir
* al Nodo cola le asignamos el Nodo con el cual se inició el recorrido del while.
*/
this.cola = cabezaInicial;
break;
}
anterior = this.cabeza;
this.cabeza = temp;
}
}
Cuando llegamos al último Nodo de la lista, se rompe el while antes de anterior = this.cabeza; this.cabeza = temp;, para que Nodo cabeza no apunte a null y para no hacer una asignación demás a Nodo anterior.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?