链表相邻元素翻转,如a->b->c->d->e->f-g,翻转后变为:b->a->d->c->f->e->g
struct Node
{
char value;
Node *next;
};
Node* reverse(Node *head)
{
if (NULL == head || head->next == NULL)
{
return head;
}
Node *q = head;
Node *p = head->next;
Node *newHead = p;
q->next = p->next;
p->next = q;
Node *prev = q;
q = prev->next;
while (q != NULL)
{
p = q->next;
if (p == NULL)
{
break;
}
q->next = p->next;
prev->next = p;
p->next = q;
prev = q;
q= prev->next;
}
return newHead;
}