CSES - Pienin ja suurin

Toteuta kurssimateriaalin mukainen binäärihakupuu, joka sisältää metodit min ja max pienimmän ja suurimman alkion hakemiseen. Toteuta metodit kurssimateriaalissa kuvatulla tavalla.

Toteuta tiedostoon minmax.py luokka TreeSet seuraavan mallin mukaisesti. Tehtäväsi on täydentää metodit min ja max. Et saa lisätä luokkaan muita metodeja kuin tehtäväpohjassa olevat.

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

class TreeSet:
    def __init__(self):
        self.root = None

    def add(self, value):
        if not self.root:
            self.root = Node(value)
            return

        node = self.root
        while True:
            if node.value == value:
                return
            if node.value > value:
                if not node.left:
                    node.left = Node(value)
                    return
                node = node.left
            else:
                if not node.right:
                    node.right = Node(value)
                    return
                node = node.right

    def min(self):
        # TODO

    def max(self):
        # TODO

if __name__ == "__main__":
    numbers = TreeSet()

    print(numbers.min()) # None
    print(numbers.max()) # None

    numbers.add(3)
    print(numbers.min()) # 3
    print(numbers.max()) # 3

    numbers.add(4)
    print(numbers.min()) # 3
    print(numbers.max()) # 4

    numbers.add(1)
    print(numbers.min()) # 1
    print(numbers.max()) # 4