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 2. print head->data
Implementation:
Javascript
<script>// Javascript program to print reverse // of a linked list// Head of listvar head;// Linked list Node class Node { constructor(val) { this.data = val; this.next = null; }}// Function to print reverse of // linked list function printReverse(head) { if (head == null) return; // Print list of head node printReverse(head.next); // After everything else is printed document.write(head.data + " ");}// Utility Functions // Inserts a new Node at front of the list. function push(new_data) { /* 1 & 2: Allocate the Node & Put in the data */ 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// Create linked list 1->2->3->4push(4);push(3);push(2);push(1);printReverse(head);// This code is contributed by Rajput-Ji </script> |
Output:
4 3 2 1
Time Complexity: O(n)
Space Complexity: O(n) for call stack since using recursion
Please refer complete article on Print reverse of a Linked List without actually reversing for more details!
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!


… [Trackback]
[…] Find More to that Topic: geeksforgeeks.org/javascript-program-for-printing-reverse-of-a-linked-list-without-actually-reversing/ […]