si è una buona idea.. per migliorare lo scambio devi per forza cercare in modo dinamico il precedente del primo e del secondo nodo nel caso non siano consecutivi.. cmq una cosa migliore sarebbe avere una bouble-linked list cioè avere un puntatore al precedente