Python program that deletes a node from the beginning of a circular linked list:

Created with Sketch.

Python program that deletes a node from the beginning of a circular linked list:

class Node:
    def __init__(self, data=None):
        self.data = data
        self.next = None

class CircularLinkedList:
    def __init__(self):
        self.head = None

    def append(self, data):
        if not self.head:
            self.head = Node(data)
            self.head.next = self.head
        else:
            current = self.head
            while current.next != self.head:
                current = current.next
            new_node = Node(data)
            current.next = new_node
            new_node.next = self.head

    def delete_at_start(self):
        current = self.head
        if self.head:
            while current.next != self.head:
                current = current.next
            current.next = self.head.next
            self.head = self.head.next

    def display(self):
        current = self.head
        if self.head:
            while current.next != self.head:
                print(current.data)
                current = current.next
            print(current.data)

# create circular linked list
cll = CircularLinkedList()

# append some data to the list
cll.append(1)
cll.append(2)
cll.append(3)

# delete the first node
cll.delete_at_start()

# display the updated list
cll.display()

In this example, we first define a Node class with a constructor that initializes the data and next properties. The CircularLinkedList class is implemented using the Node class. The CircularLinkedList class has an append method that adds new data to the end of the linked list and a display method that prints the data of each node in the list.

The delete_at_start() method deletes the first node from the beginning of the circular linked list. It starts by initializing a current variable to the head of the linked list, then it iterates through the list until it reaches the last node. It then updates the next pointer of the last node to point to the second node, effectively cutting the first node out of the list. Finally, it updates the head of the linked list to point to the second node.

After calling the delete_at_start method, the updated list can be displayed using the display method.

Please note that this implementation assumes the list is not empty and if the list is empty it will raise an Exception.

Leave a Reply

Your email address will not be published. Required fields are marked *