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>
var head;
class Node
{
constructor(val)
{
this .data = val;
this .next = null ;
}
}
function printReverse(head)
{
if (head == null )
return ;
printReverse(head.next);
document.write(head.data + " " );
}
function push(new_data)
{
new_node = new Node(new_data);
new_node.next = head;
head = new_node;
}
push(4);
push(3);
push(2);
push(1);
printReverse(head);
</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!