//我写的
void invertList(TList *&head)
{
TList *p1, *p2, *p3;
if(head == NULL || head->next == NULL)
return;
else if(head->next->next == NULL)
{
p1 = head;
p2 = p1->next;
p2->next = p1;
p1->next = NULL;
head = p2;
return;
}
p1 = head;
p2 = p1->next;
p3 = p1->next->next;
p1->next->next = p1;
p1->next = NULL;
p1 = p2;
while( p3 != NULL)
{
p2 = p3;
p3 = p2->next;
p2->next = p1;
p1 = p2;
}
head = p1;
return;
}
//网上的方法
void invertList(TList *&head)
{
if(head == NULL || head->next == NULL)
return;
TList *preNode, *curNode, *nextNode;
curNode = head;
preNode = NULL;
nextNode = NULL;
while(curNode)
{
nextNode = curNode->next;
curNode->next = preNode;
preNode = curNode;
curNode = nextNode;
}
head = preNode;
}