Programa de Python para imprimir el reverso de una lista vinculada sin invertir realmente

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 
 

reverse-a-link-list

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *