Ctrl K

Дерево по столбцам

Средняя
Дан корень root двоичного дерева. Нарисуем дерево на клетчатой бумаге: корень стоит в столбце 0, левый ребёнок любой вершины — на столбец левее её, правый — на столбец правее. Верните значения вершин по столбцам, от самого левого столбца к самому правому. Внутри столбца вершины идут сверху вниз; если две вершины столбца находятся на одной глубине, первой идёт та, что левее на рисунке (то есть встретится раньше при обходе уровня слева направо). Для пустого дерева верните пустой список.
Пример 1
root=tree_node([6, 4, 8, 1, 5, 7, 9]) → [[1], [4], [6, 5, 7], [8], [9]]

Корень в столбце 0, 4 и 8 — в столбцах -1 и 1. Вершины 5 и 7 обе попадают в столбец 0 на одной глубине, поэтому идут слева направо: 6, 5, 7.

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

3 стоит в столбце 1, а её левый ребёнок 1 возвращается в столбец 0 под корень.

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

Пустое дерево — ни одного столбца.

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

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