Alberi Binari di Ricerca Python

class Node:
    def __init__(self, value=None, left=None, right=None):
        self.left = None
        self.right = None
        self.value = value

    def insertValue(self, value):
        if not self.value:
            self.value = value
            return
        if self.value == value:
            return
        if value < self.value:
            if self.left:
                self.left.insertValue(value)
                return
            self.left = Node(value)
            return
        if self.right:
            self.right.insertValue(value)
            return
        self.right = Node(value)

    def getMin(self):
        while self.left is not None:
            self = self.left
        return self.value

    def getMax(self):
        while self.right is not None:
            self = self.right
        return self.value

def buildABR(lista):
    bst = Node()
    for x in lista:
        bst.insertValue(x)
    return bst

if __name__ == "__main__":
    lista = [99, 6, 18, -1, 21, 11, 3, 5, 4, 24, 18]
    abr = buildABR(lista)
    print(abr.getMax())
    print(abr.getMin())
Federiko98