Dada una lista enlazada, imprima el reverso usando una función recursiva. Por ejemplo, si la lista enlazada dada es 1->2->3->4, entonces la salida debería ser 4->3->2->1.
Tenga en cuenta que la pregunta es solo sobre la impresión del reverso. Para invertir la lista en sí, vea este
Nivel de dificultad: Novato
Algoritmo:
printReverse(head) 1. call print reverse for head->next 2. print head->data
Implementación:
Python3
# Python3 program to print reverse # of a linked list # Node class class Node: # Constructor to initialize # the node object def __init__(self, data): self.data = data self.next = None class LinkedList: # Function to initialize head def __init__(self): self.head = None # Recursive function to print # linked list in reverse order def printrev(self, temp): if temp: self.printrev(temp.next) print(temp.data, end = ' ') else: return # Function to insert a new node # at the beginning def push(self, new_data): new_node = Node(new_data) new_node.next = self.head self.head = new_node # Driver code llist = LinkedList() llist.push(4) llist.push(3) llist.push(2) llist.push(1) llist.printrev(llist.head) # This code is contributed by Vinay Kumar(vinaykumar71)
Producción:
4 3 2 1
Complejidad de tiempo: O(n)
Complejidad espacial: O (n) para la pila de llamadas desde que se usa la recursividad
¡Consulte el artículo completo sobre Imprimir el reverso de una lista vinculada sin realmente revertir para obtener más detalles!
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA