def perfect_tree_partition(n):
    """find the point to partition n keys for a perfect binary tree"""
x = 1
x = 1 << n.bit_length() - 1
if x // 2 - 1 <= n - x:
    return x - 1
else:
    return n - x // 2
Создать полное бинарное дерево поиска из списка