Swap nodes algorithm