Для вашего конкретного примера, если предположить, что у вас уже есть указатели (или итераторы) на узлы, это просто вопрос обмена значениями в двух узлах.
Теперь, если ваши узлы содержат более существенные данные, и вам действительно нужно поменять их местами, это просто вопрос установки указателей prev / next одного узла на другой, и наоборот. Если заголовок списка перемещается (и, возможно, хвост, в зависимости от того, как представлен ваш список), вам также придется обновить эти переменные.