
Introduction
In this blog, we will discuss a linked list problem that has been asked frequently in Interviews.
The problem is to Recursively reverse a Linked List which is again an important problem of LinkedList data structure.
So here I am, starting with what is a linked list?
It is an ordered set of elements, each holding data and link containing the address to the next element.
To know more about the linked list, refer here: Linked list
Now, coming to the question.
Problem Statement
We are given N elements in a linked list, and we are asked to reverse the elements of a linked list by using recursion.
Sample Example
Example:

Recommended: Before stepping toward the solution, try it by yourself on Coding Ninjas Studio.
Must Read Recursion in Data Structure
Approach
Now we will discuss the approach to reverse a linked list recursively.
Declare the Node structure and write the function to insert a node at the tail so that our linked list becomes ready.
⬇
Now to recursively reverse the linked list, first write the base condition, i.e., if only one node or no node exists.
⬇
Then call the recursive function on the entire list except for the first node.
⬇
Update the link on the first node. Return the updated list.
Time Complexity = O(n).
Since in the worst case, only one traversal is needed.

Till now, I assume you must have got the basic idea of what has been asked in the problem statement. So, I strongly recommend you first give it a try.
And solve some related problems on the linked list problem
PseudoCode
Algorithm
___________________________________________________________________
procedure recursiveReverse( node* &head):
___________________________________________________________________
1. if(head==NULL || head->next==NULL)
return head
2. node* newHead=recursiveReverse(head->next);
3. head->next->next=head;
4. head->next=NULL
5. Return newHead
end procedure