Puoi crearti una procedura iterativa che ti scorre gli elementi della lista tramite un iteratore, inoltre utilizzi un indice che lo fai partire o da 1 o da 0 e lo incrementi a ogni lettura di un nodo, ottenendo così l'indicazione del posto.
Ogni volta che leggi un nodo di posto pari lo elimini dalla lista di stringhe e lo agganci ad un'altra lista temporanea.
Quando hai finito avrai 2 liste: la lista originaria contentente solo i nodi di posto dispari e una lista temporanea contenente solo nodi di posto pari; poi prendi l'ultimo elemento della lista di stringhe originaria, con tutti elementi di posto dispari, e lo agganci al primo elemento della lista temporanea, che ha tutti gli elementi di posto pari.
Spero di essere stato chiaro, ciao