К задачам

Обход бинарного дерева зигзагом

СредняяАлгоритмы
Лучше работает на десктопе
ДеревьяBFSДвусторонняя очередь
Кадр с условием задачи 1
Кадр записи

Дано бинарное дерево в формате массива level-order, где None означает отсутствие узла.

Верните значения узлов по уровням, но направление обхода должно чередоваться:

  • первый уровень слева направо;
  • второй уровень справа налево;
  • третий снова слева направо;
  • и так далее.

В исходном собеседовании задача была сформулирована через класс Node. В тренажере дерево передается массивом, чтобы задачу можно было проверять автотестами в браузере.

Сигнатура

def zigzag_level_order(tokens: list) -> list[list[int]]:

Примеры

Пример 1

Вход:
tokens = [3,9,20,null,null,15,7]
Выход:[[3],[20,9],[15,7]]

Пример 2

Вход:
tokens = [1]
Выход:[[1]]

Пример 3

Вход:
tokens = [null]
Выход:[]
Код
Python · Ctrl/⌘ + Enter для запуска
Лимит
10:00
Консоль
Нажмите кнопку запуска или Ctrl+Enter
Обход бинарного дерева зигзагом — Алгоритмы задача — ML Mentor