Описание задачи
Необходимо реализовать обход бинарного дерева по уровням (level order traversal) таким образом, чтобы элементы каждого уровня выводились в "Z-образной" последовательности. Это означает, что при обходе уровня слева направо, элементы должны быть добавлены в результат в порядке левого-правого обхода, а при обходе уровня справа налево – в порядке правого-левого обхода.
Вход:
root: Корень бинарного дерева. Предполагается, что у узла есть атрибуты val (значение узла) и ссылки на левого (left) и правого (right) потомков.
Выход:
Список списков. Каждый внутренний список представляет собой уровень дерева, а элементы внутри списка соответствуют значениям узлов на этом уровне в Z-образной последовательности. Если дерево пустое, возвращается пустой список.
Режим обучения Готово
Объяснение решения уже подготовлено. Нажмите кнопку, чтобы посмотреть.
Ваше решение
Подсказка (готовое решение)
def zigzagLevelOrder(root):