Ctrl K

Сначала дети, потом родитель

Лёгкая
Дан корень root двоичного дерева. Представьте, что дерево нужно разобрать: вершину можно снять только тогда, когда сняты все её потомки. Выпишите значения вершин в порядке снятия по такому правилу: для каждой вершины сначала целиком её левое поддерево, затем целиком правое, и только потом сама вершина. Верните список значений. Для пустого дерева верните пустой список. *Рекурсивное решение пишется в пару строк — попробуйте обойтись без рекурсии.*
Пример 1
root=tree_node([10, 4, 8, 2, 6]) → [2, 6, 4, 8, 10]

У вершины 4 дети 2 и 6 — они идут раньше неё. Затем 8 (у неё детей нет) и последним корень 10.

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

Корень 3 последний, перед ним 5, а ещё раньше — её ребёнок 1.

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

Одна вершина — список из одного значения.

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

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