Приведенный код требует полного, абсолютного, тотального, всеобъемлющего и исчерпывающего рефакторинга... Если нужно "махнуть" элемент со следующим, то достаточно:
1. Перейти по списку до текущего элемента
2. Создать буфер под данные в текущем списке
3. Скопировать данные из текущего элемента в буфер
4. Скопировать данные из следующего элемента в предыдущий
5. Скопировать данные из буфера в следующий элемент
6. (опционально) Удалить буфер
Это решение "в лоб" и далеко не оптимально, но, учитывая качество кода, говорить о перелинковке элементов считаю излишним.