Get out the paper and pencil, and doodle.
You logically have three temporary pointers which follow each other down the linked list (called Prev, Curr and Next).
Code:
.
P C N
+=+ +=+ +=+ +=+
|a|--------->|s|--------->|d|--------->|f|
+=+ +=+ +=+ +=+
If you want to swap over Curr and Next, then you need three assignments.
Code:
.
+--------(1)------+
P | C | N
+=+ | +=+ | +=+ +=+
|a|--+ +->|s|--+ +->|d|--+ +>|f|
+=+ | +=+ | +=+ | | +=+
| | | |
+-------|-----(3)----+ |
| |
+--------(2)-------+
Prev->next = Next; // 1
Curr->next = Next->next; // 2
Next->next = Curr; // 3
The last step would be to reset Curr and Next to be their respective new nodes before progressing.