Programa C++ 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: 

C++

// C++ program to print reverse of a linked list
#include <bits/stdc++.h>
using namespace std;
 
// Link list node
class Node
{
    public:
    int data;
    Node* next;
};
 
// Function to reverse the
// linked list
void printReverse(Node* head)
{
    // Base case
    if (head == NULL)
    return;
 
    // Print the list after head node
    printReverse(head->next);
 
    // After everything else is printed,
    // print head
    cout << head->data << " ";
}
 
// UTILITY FUNCTIONS
/* Push a node to linked list.
   Note that this function
   changes the head */
void push(Node** head_ref,
          char new_data)
{
    // Allocate node
    Node* new_node = new Node();
 
    // Put in the data
    new_node->data = new_data;
 
    // Link the old list off the
    // new node
    new_node->next = (*head_ref);
 
    // Move the head to point to
    // the new node
    (*head_ref) = new_node;
}
 
// Driver code
int main()
{
    // Let us create linked list
    // 1->2->3->4
    Node* head = NULL;
    push(&head, 4);
    push(&head, 3);
    push(&head, 2);
    push(&head, 1);
     
    printReverse(head);
    return 0;
}
// This code is contributed by rathbhupendra

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 *