Ctrl K

Слева, вершина, справа

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

Сначала всё левое поддерево корня (1, 3, 4), потом сам корень 6, потом правое поддерево (9, 12).

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

У 7 нет левого ребёнка, поэтому она идёт первой. Дальше правое поддерево: у 5 есть левый ребёнок 8, он раньше 5.

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

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

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

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