head. Пронумеруем узлы с единицы: первый узел стоит на нечётном месте, второй — на чётном и так далее.
Перестройте список так, чтобы сначала шли все узлы с нечётных мест, а за ними — все узлы с чётных. Внутри каждой группы узлы сохраняют исходный порядок. Верните голову получившегося списка.
Попробуйте обойтись O(1) дополнительной памяти и временем O(n): переставляйте сами узлы, а не создавайте новые.head=list_node([7, 3, 9, 1, 4, 8]) → [7, 9, 4, 3, 1, 8]
На нечётных местах (1-м, 3-м, 5-м) стоят 7, 9, 4, на чётных — 3, 1, 8. Сначала первая группа, затем вторая.
head=list_node([5, -2]) → [5, -2]
Два узла уже стоят в нужном порядке.
head=list_node([]) → None
Пустой список остаётся пустым.
head=list_node([7, 3, 9, 1, 4, 8])
[7, 9, 4, 3, 1, 8]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 88 тестов на сервере, включая скрытые.