Ошибка в логике. Если мысленно пронумеровать элементы, то мы получим
Код:
x=Head; p=Head; // x и p содержат 0-вые элементы
x=x->Next; // x содержит 1-й элемент
p->Next=x->Next; // x содержит 1-й элемет, p ->Next второй элемент.
x->Next=p; // x->Next и p содержат 0-й элемент