When it is required to display the elements/nodes in a linked list, using recursion method, a method to add values to the linked list, and a method to print the elements of a Linked List. It would also have a helper method that uses recursion, i.e calls the helper function again and again to print the values.
Below is a demonstration for the same −
class Node: def __init__(self, data): self.data = data self.next = None class my_linked_list: def __init__(self): self.head = None self.last_node = None def add_value(self, my_data): if self.last_node is None: self.head = Node(my_data) self.last_node = self.head else: self.last_node.next = Node(my_data) self.last_node = self.last_node.next def print_it(self): self.helper_print(self.head) def helper_print(self, curr): if curr is None: return print(curr.data) self.helper_print(curr.next) my_instance = my_linked_list() n = int(input('How many elements you wish to add ? ')) for i in range(n): data = int(input('Enter a data item : ')) my_instance.add_value(data) print('The linked list: ') my_instance.print_it()
How many elements you wish to add ? 4 Enter a data item : 34 Enter a data item : 67 Enter a data item : 12 Enter a data item : 89 The linked list: 34 67 12 89
The ‘Node’ class is created.
Another ‘my_linked_list’ class with required attributes is created.
It has an ‘init’ function that is used to initialize the first element, i.e the ‘head’ to ‘None’ and last node to ‘None’.
Another method named ‘add_value’ is defined, that is used to add data to the linked list.
Another method named ‘print_it’ is defined that calls the helper method to display the linked list data on the console.
Another method named ‘helper_print’ is defined that is used to display the linked list data on the console.
This helper function is defined, since recursion needs to be used here.
An object of the ‘my_linked_list’ class is created.
The user input is taken for the number of elements in the linked list.
This range is iterated over, and the methods are called on it to add data.
This is displayed on the console using the ‘print_it’ method.