preserving c1->snext and c2->snext in swap() as well.