from random import randint, shuffle n = 10**5 # n = 10 h = 0 class Node: def __init__(self, value): self.left = None self.right = None self.value = value self.height = 1 def set_h(self, x): self.height = x + 1 def add(self, value): global h if self.height > h: h = self.height # print(value, "-", self.value, "---", self.left, self.right) if value > self.value: if self.right is not None: self.right.add(value) else: self.right = Node(value) self.right.set_h(self.height) return else: if self.left is not None: self.left.add(value) else: self.left = Node(value) self.left.set_h(self.height) return list = [] list = [x for x in range(1, n)] shuffle(list) N = Node(randint(1, n)) for x in list: N.add(x) print(h)