反转一个单链表。
解题思路:最简单的方法是反转每一个元素next指向的方向。
ListNode* reverseList(ListNode* head)
{
ListNode *p1, *p2, *ptemp;
ListNode *phead = new ListNode(0);
if((head == NULL)||(head->next == NULL))
{
return head;
}
phead->next = head;
p1 = phead->next;
p2 = p1->next;
p1->next = NULL;
while(p2->next != NULL)
{
ptemp = p2->next;
p2->next = p1;
p1 = p2;
p2 = ptemp;
}
p2->next = p1;
phead->next = p2;
return phead->next;
}