Я согласен с двусвязными списками.Вот один из способов реализовать это.
Для каждого узла используйте два указателя в виде массива.Также в узле есть значение числа и логическая переменная dir.Первоначально, наведите первый указатель в каждом узле на предыдущий узел, наведите второй указатель на следующий узел и установите для dir для всех узлов значение 0. При обходе связанного списка следите за переменной, имеющей направление, DСначала установите его на 1.Он указывает, по какому указателю следовать, чтобы перейти к следующему элементу в каждом узле.Когда вы достигнете узла, если dir установлен в 1, установите D в NOT из D и продолжайте использовать D, чтобы найти следующий узел.
Чтобы перевернуть последовательность узлов, установите для dir значение NOT of dir в последнем узле, а узел после последнего узла последовательности узлов, который вы хотите повернуть, перед указателем верного указателя узлапоследовательность к последнему элементу последовательности (и наоборот) и укажите правильный указатель узла после последовательности на первый элемент последовательности (и наоборот).
Надеемся, что это даету вас есть хоть какой-то способ продвинуться вперед.