# C# Program For Printing Reverse Of A Linked List Without Actually Reversing

• Last Updated : 14 Dec, 2021

Given a linked list, print reverse of it using a recursive function. For example, if the given linked list is 1->2->3->4, then output should be 4->3->2->1.
Note that the question is only about printing the reverse. To reverse the list itself see this
Difficulty Level: Rookie Algorithm:

```printReverse(head)
1. call print reverse for head->next

Implementation:

## 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 `

Output:

`4 3 2 1`

Time Complexity: O(n)

Please refer complete article on Print reverse of a Linked List without actually reversing for more details!

My Personal Notes arrow_drop_up