head и число size. Разбейте список на последовательные блоки по size узлов, считая от начала, и разверните порядок узлов внутри каждого полного блока. Если в конце осталось меньше size узлов, этот хвост не трогайте.
Менять значения в узлах нельзя — переставлять нужно сами узлы. Верните голову получившегося списка.
Попробуйте обойтись O(1) дополнительной памяти.head=list_node([10, 20, 30, 40, 50, 60, 70, 80]), size=3 → [30, 20, 10, 60, 50, 40, 70, 80]
Блоки [10, 20, 30] и [40, 50, 60] разворачиваются, хвост [70, 80] короче трёх и остаётся как есть.
head=list_node([5, 6, 7, 8]), size=4 → [8, 7, 6, 5]
Весь список — один блок, он разворачивается целиком.
head=list_node([1, 2, 3]), size=1 → [1, 2, 3]
Блок из одного узла после разворота не меняется.
head=list_node([10, 20, 30, 40, 50, 60, 70, 80]), size=3
[30, 20, 10, 60, 50, 40, 70, 80]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 108 тестов на сервере, включая скрытые.