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
using System;
 
public class LinkedList
{
    // Head of list
    Node head;
 
    // Linked list Node
    class Node
    {
        public int data;
        public Node next;
        public Node(int d)
        {
            data = d; next = null;
        }
    }
 
    // Function to print reverse
    // of linked list
    void printReverse(Node head)
    {
        if (head == null) return;
 
        // print list of head node
        printReverse(head.next);
 
        // After everything else is printed
        Console.Write(head.data + " ");
    }
 
    // Utility Functions
 
    // Inserts a new Node at front
    // of the list.
    public void push(int new_data)
    {
        /* 1 & 2: Allocate the Node &
                  Put in the data*/
        Node new_node = new Node(new_data);
 
        // 3. Make next of new Node as head
        new_node.next = head;
 
        // 4. Move the head to point to
        // new Node
        head = new_node;
    }
 
    // Driver code
    public static void Main(String []args)
    {
        // Let us create linked list 1->2->3->4
        LinkedList llist = new LinkedList();
        llist.push(4);
        llist.push(3);
        llist.push(2);
        llist.push(1);
 
        llist.printReverse(llist.head);
    }
}
// This code is contributed by Rajput-Ji

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 *