Figure 1: Swapping nodes in a list is easy, but not trivial. Here are three states of the swapping process. First, you have the list before the swap. Swapping occurs (middle, "During") leaving the left and right nodes inversed (bottom, "After"). You then have to swap the left and right pointers (just pointers, not pointees) to restore the ordering of the list.