Ctrl K

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

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

Корень 5, затем всё левое поддерево (2, 1, 3), затем правое (9, 11).

Пример 2
root=tree_node([4, None, 6, 8]) → [4, 6, 8]

4, потом её правый ребёнок 6, потом левый ребёнок 6 — это 8.

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

Пустое дерево — пустой список.

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

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