root двоичного дерева, все значения в котором различны. За одну операцию можно выбрать две вершины на одном уровне (на одинаковом расстоянии от корня) и поменять их значения местами.
Верните наименьшее число операций, после которых на каждом уровне значения, прочитанные слева направо, будут строго возрастать.root=tree_node([4, 9, 2, 1, 7, 8, 3]) → 3
На уровне 1 меняем 9 и 2. На уровне 2 стоят 1, 7, 8, 3: меняем 7 и 3, получаем 1, 3, 8, 7, затем 8 и 7. Всего три обмена.
root=tree_node([6, 3, 8]) → 0
Уровни уже упорядочены: [6] и [3, 8].
root=tree_node([10, 20, 5, None, None, 40, 30]) → 2
Один обмен на уровне 1 (20 и 5) и один на уровне 2 (40 и 30).
Node.val ≤ 10⁵root=tree_node([4, 9, 2, 1, 7, 8, 3])
3
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 82 теста на сервере, включая скрытые.