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:
Python3
# Python3 program to print reverse# of a linked list # Node class class Node: # Constructor to initialize # the node object def __init__(self, data): self.data = data self.next = None class LinkedList: # Function to initialize head def __init__(self): self.head = None # Recursive function to print # linked list in reverse order def printrev(self, temp): if temp: self.printrev(temp.next) print(temp.data, end = ' ') else: return # Function to insert a new node # at the beginning def push(self, new_data): new_node = Node(new_data) new_node.next = self.head self.head = new_node # Driver codellist = LinkedList() llist.push(4) llist.push(3) llist.push(2) llist.push(1) llist.printrev(llist.head)# This code is contributed by Vinay Kumar(vinaykumar71) |
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]
[…] Info on that Topic: geeksforgeeks.org/python-program-for-printing-reverse-of-a-linked-list-without-actually-reversing/ […]
… [Trackback]
[…] Info to that Topic: geeksforgeeks.org/python-program-for-printing-reverse-of-a-linked-list-without-actually-reversing/ […]
… [Trackback]
[…] Find More here to that Topic: geeksforgeeks.org/python-program-for-printing-reverse-of-a-linked-list-without-actually-reversing/ […]
… [Trackback]
[…] Read More on that Topic: geeksforgeeks.org/python-program-for-printing-reverse-of-a-linked-list-without-actually-reversing/ […]