Ctrl K

Обрывать листья по раундам

Средняя
Дан корень root непустого двоичного дерева. Дерево разбирают раундами: в каждом раунде одновременно удаляют все текущие листья (узлы без детей). После удаления их родители могут сами стать листьями и уйдут в следующем раунде. Так продолжают, пока дерево не опустеет. Верните список раундов: для каждого раунда — значения удалённых в нём узлов, слева направо в порядке их расположения в дереве.
Пример 1
root=tree_node([7, 3, 8, None, 5, 6]) → [[5, 6], [3, 8], [7]]

Сначала листья 5 и 6. После их удаления листьями становятся 3 и 8, потом остаётся только корень 7.

Пример 2
root=tree_node([1, 2, None, 3]) → [[3], [2], [1]]

Дерево — цепочка, поэтому каждый раунд снимает ровно один узел снизу.

Пример 3
root=tree_node([-4]) → [[-4]]
Ограничения
  • Число узлов — от 1 до 100
  • -100 ≤ значение узла ≤ 100
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЭто дерево поиска? СредняяДве перепутанные вершины СредняяВсе пути до листьев с заданной суммой СредняяДерево в правую цепочку СредняяСумма чисел на ветвях Средняя
загружаем Python…
Вход
root=tree_node([7, 3, 8, None, 5, 6])
Ожидается
[[5, 6], [3, 8], [7]]

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