
Дано бинарное дерево в формате массива level-order, где None означает отсутствие узла.
Верните значения узлов по уровням, но направление обхода должно чередоваться:
- первый уровень слева направо;
- второй уровень справа налево;
- третий снова слева направо;
- и так далее.
В исходном собеседовании задача была сформулирована через класс Node. В тренажере дерево передается массивом, чтобы задачу можно было проверять автотестами в браузере.
def zigzag_level_order(tokens: list) -> list[list[int]]:
zigzag_level_order([3, 9, 20, None, None, 15, 7])
# -> [[3], [20, 9], [15, 7]]tokens = [3,9,20,null,null,15,7][[3],[20,9],[15,7]]tokens = [1][[1]]tokens = [null][]