When it is required to create a circular linked list and display it in the reverse order, a 'Node' class needs to be created.
To display the data elements in the circular list in reverse order, another method can be defined, that would reverse the data. In this class, there are two attributes, the data that is present in the node, and the access to the next node of the linked list. In a circular linked list, the head and the rear are adjacent to each other. They are connected to form a circle, and don't have 'NULL' value in the last node.
Another 'linked_list' class needs to be created that would have an initialization function, and the head of the node would be initialized to 'None'.
Below is a demonstration for the same −
class Node: def __init__(self, my_data): self.data = my_data self.next = None class linked_list: def __init__(self): self.head = None def add_data(self,my_data): new_node = Node(my_data) new_node.next = self.head self.head = new_node def reverse(self): prev = None current = self.head while(current is not None): next = current.next current.next = prev prev = current current = next self.head = prev def print_it(self): temp = self.head while(temp): print(temp.data) temp = temp.next my_list = linked_list() my_list.add_data(47) my_list.add_data(89) my_list.add_data(34) my_list.add_data(11) print("The list is : ") my_list.print_it() print("The list is being reversed") my_list.reverse() print("The reversed list is : ") my_list.print_it()
The list is : 11 34 89 47 The list is being reversed The reversed list is : 47 89 34 11