¿Hay alguna forma de imprimir todos los elementos de una lista enlazada en orden inverso sin usar la recursividad?

Lista enlazada individualmente. Orden inverso. Sin recursividad.

Se puede hacer.

Una lista individualmente vinculada apunta solo hacia adelante y, por lo tanto, hacer algo a la inversa no es eficiente en absoluto. Es por eso que se desarrollaron listas doblemente vinculadas. Probablemente puede hacer esto de muchas maneras y puede ser más eficiente de lo que le voy a decir.

Puede recorrer la lista e imprimir los valores, si sabe cuántos elementos hay en la lista. A continuación se explica cómo:

bool reverse (lista enlazada, longitud) {
si longitud == 0
falso retorno;
temp = longitud;
para i = 1: longitud {
lista-enlazada = cabeza;
para j = 1: temp {
lista-enlazada = lista-enlazada-> siguiente;
// bucle hasta llegar al final
}
imprimir (lista enlazada-> datos);
temperatura-;
}
volver verdadero;
}

Primero iteraremos por n veces. Dentro de cada bucle comenzaremos desde el principio de la lista e iremos a la posición señalada por temp. Imprima el valor en esa ubicación y disminuya el contador. Este enfoque de bucle anidado tiene complejidad O (n ^ 2).

Espero eso ayude.

Feliz codificación !!

Puede seguir el siguiente enfoque:

  1. Empuje los elementos de la lista Singly Linked en la Pila.
  2. Luego simplemente realice la operación pop () en los elementos de la pila. Los elementos aparecerán en orden inverso cuando Stack utilice el concepto de LIFO, es decir, Last in First out.

Consulte el fragmento de código a continuación:

private void printReverse (nodo SinglyLinkedList) {
Stack stack = new Stack <> ();
while (nodo! = nulo) {
stack.push (nodo);
nodo = nodo.siguiente;
}
while (! stack.empty ())
System.out.println (stack.pop ());
}

Por supuesto que sí. Ciertamente es posible revertir una lista individualmente vinculada. Aquí hay un video tutorial completo para ello:

Vaya iterativo … Debo decir aquí que en lugar de preguntar por quora, debe buscarlo en Google y aprender este tipo de conceptos de cualquier sitio web como Geeksforgeeks