Ctrl K

Развернуть нечётные ярусы дерева

Средняя
Дан корень root идеального двоичного дерева: у каждого внутреннего узла ровно два ребёнка, а все листья лежат на одной глубине. Глубина корня — 0, его детей — 1 и так далее. На каждой нечётной глубине разверните значения узлов: если слева направо на этом уровне стояли значения a, b, c, d, должны стать d, c, b, a. Форма дерева не меняется. Верните корень.
Пример 1
root=tree_node([1, 6, 9]) → [1, 9, 6]

На глубине 1 значения 6 и 9 меняются местами.

Пример 2
root=tree_node([4, 2, 8, 10, 20, 30, 40]) → [4, 8, 2, 10, 20, 30, 40]

Глубина 1 разворачивается: 8, 2. Глубина 2 чётная и остаётся 10, 20, 30, 40.

Пример 3
root=tree_node([7]) → [7]

Нечётных уровней нет — дерево не меняется.

Ограничения
  • В дереве от 1 до 2¹⁴ узлов
  • 0 ≤ Node.val ≤ 10⁵
  • Дерево идеальное
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДерево глазами наблюдателя справа СредняяДерево по столбцам СредняяПервый на нижнем этаже СредняяМаксимум на каждом уровне дерева СредняяВставить уровень в дерево Средняя
загружаем Python…
Вход
root=tree_node([1, 6, 9])
Ожидается
[1, 9, 6]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 13 тестов на сервере, включая скрытые.