root двоичного дерева и число rank.
Назовём поддерево **идеальным**, если у каждой его внутренней вершины ровно два ребёнка, а все листья лежат на одной глубине. Поддерево вершины — это она сама со всеми потомками; отдельный лист — тоже идеальное поддерево из одной вершины.
Выпишите размеры (число вершин) всех идеальных поддеревьев, по одному на каждую вершину, которая является корнем идеального поддерева, и упорядочьте их по убыванию. Верните rank-й элемент этого списка (нумерация с единицы) или -1, если список короче.root=tree_node([4, 9, 2, 1, 7, 3, 8, None, None, 6, 5]), rank=1 → 3
Целиком дерево не идеальное: у вершины 1 нет детей, а у 7 они есть. Самые большие идеальные поддеревья — с корнями 7 и 2, по 3 вершины.
root=tree_node([10, 20, 30, 40, 50, 60, 70]), rank=2 → 3
Размеры идеальных поддеревьев по убыванию: 7, 3, 3, 1, 1, 1, 1. Второй — 3.
root=tree_node([5, None, 6]), rank=2 → -1
Идеальное поддерево здесь одно — сам лист 6, второго нет.
Node.val ≤ 2000rank ≤ 1024root=tree_node([4, 9, 2, 1, 7, 3, 8, None, None, 6, 5]), rank=1
3
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 78 тестов на сервере, включая скрытые.