Mi solución se basa en (Si la lista fuera: 3 -> 4 -> 5 -> 6 y mis índices 1,2,3,4):
Recorrer la lista tomando como Nodo actual los nodos de índice par (empezando a contar mis índices desde 1, Nodo cabeza es el índice 1), entonces Nodo actual ingresaría con el Nodo de índice 2, es decir Nodo con valor 4, tomo el anterior y lo apunto hacia el siguiente de actual:
3 -> 4 -> 5 -> 6, entonces 3 -> 5 -> 6
Luego a Nodo actual lo muevo hacia la cola de la lista, quedando de la siguiente manera:
3 -> 5 -> 6 -> 4
Vuelve a ingresar al while, ahora como Nodo actual con Nodo de índice 4 (es decir el Nodo con valor 6, el que tenía índice 4 originalmente) y vuelvo a realizar el mismo proceso:
3 -> 5 -> 4
Muevo el actual a la cola de la lista:
3 -> 5 -> 4 -> 6
Para que culmine la iteración he guardado el Nodo cola original, para compararlo y romper el ciclo.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?