Try something like this.
Doubly-linked list:
for (Node * n = _head, * next; ; n = next)
{
next = n->next;
std::swap(n->next, n->prev);
if (next == NULL) { _head = n; break; }
}
Singly-linked list:
for (Node * n = _head, * prev = NULL, * next; ; prev = n, n = next)
{
next = n->next;
n->next = prev;
if (next == NULL) { _head = n; break; }
}