def _put(self, root: TreeNode, key): if root.key == key: root.key = key elif key < root.key: if root.hasLeftChild(): self._put(root.leftChild, key) else: root.leftChild = TreeNode(key, root) self._size += 1 else: if root.hasRightChild(): self._put(root.rightChild, key) else: root.rightChild = TreeNode(key, root) self._size += 1