Circular Linked List code

PHOTO EMBED

Wed Apr 27 2022 07:21:08 GMT+0000 (Coordinated Universal Time)

Saved by @abdalrahmansh #python #datastructer

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


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

    def addToEmpty(self, data):

        if self.last != None:
            return self.last

        newNode = Node(data)

        self.last = newNode
        self.last.next = self.last
        return self.last
    def addFront(self, data):

        if self.last == None:
            return self.addToEmpty(data)

        newNode = Node(data)

        newNode.next = self.last.next

        self.last.next = newNode

        return self.last
    def addEnd(self, data):
        if self.last == None:
            return self.addToEmpty(data)
        newNode = Node(data)
        newNode.next = self.last.next
        self.last.next = newNode

        self.last = newNode

        return self.last

    def addAfter(self, data, item):

        if self.last == None:
            return None

        newNode = Node(data)
        p = self.last.next
        while p:

            if p.data == item:
                newNode.next = p.next
                p.next = newNode

                if p == self.last:
                    self.last = newNode
                    return self.last
                else:
                    return self.last
            p = p.next
            if p == self.last.next:
                print(item, "The given node is not present in the list")
                break

    def deleteNode(self, last, key):
        if last == None:
            return
content_copyCOPY