Circular Linked Lists Remove Nodes

inserting an Image inserting an Image inserting an Image

Code:

def remove(self, key):
    
    if self.head.data == key:  
        
        current = self.head
        
        while current.next != self.head:
            
            current = current.next
            
        current.next = self.head.next
        
        self.head = self.head.next
        
    else:
        
        current = self.head
        
        previous = None
        
        while current.next != self.head:
            
            previous = current
            current = current.next
            
            if current.data  == key:
                
                previous.next = current.next
                
                current = current.next