Python Program to Display all the Nodes in a Linked List using Recursion

PythonServer Side ProgrammingProgramming

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 −

Example

 Live Demo

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()

Output

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

Explanation

  • 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.

raja
Published on 14-Apr-2021 12:58:34
Advertisements