# Print Linked List in Reverse Order without actually Reversing it

Print Linked List in Reverse Order without actually Reversing it” is again one of the famous problems of the Linked List. Here, we are given a linked list and our task is to print the given linked list in reverse order without actually reversing it.

We can use recursion to solve the following problem.

Example:

```Suppose, we need to print the given linked list in reverse order without actually reversing it, then:
12 -> 13 -> 14 -> 15 -> 16
Output List:
16 -> 15 -> 14 -> 13 -> 12```

#### C++ Program to Print Linked List in Reverse Order without actually Reversing it:

```/* C++ Program to print linked list in reverse order without actually reversing it */
#include<bits/stdc++.h>
using namespace std;

/* strcuture of the Node of the Linked List */
typedef struct node
{
int data;
struct node *next;
}Node;

/* Function to insert node at the end of the linked list */
{
/* Creating a new node */
Node *new_node;
new_node = (struct node*)malloc(sizeof(struct node));
new_node->data = ele;
new_node->next = NULL;

/* check whether the linked list is empty or not */

{
return;
}

/* If Linked List is not empty, then traverse the complete linked list and last node
of the linked list will points to the new node of the linked list */
Node *temp = NULL;
while(temp->next != NULL)
temp=temp->next;
temp->next = new_node;
}

/* Function to print the Linked List */
{
while(temp != NULL)
{
cout << temp -> data << " ";
temp = temp -> next;
}
cout<<endl;
}

/* Function to print the linked list in reverse order*/
{
return;
}

int main()
{
/* Insert Some Nodes in the Linked List */
cout<<"\nPrinting Reverse Order of the Linked List:\n";
```OUTPUT: