输入一个链表,反转链表后,输出新链表的表头。
ListNode* ReverseList(ListNode* pHead) {
ListNode* head = NULL;
do
{
if (NULL == pHead) {
break;
}
if (pHead->next == NULL) {
head = pHead;
break;
}
ListNode* p = pHead->next;
ListNode* ptail = pHead->next;
while (p->next != NULL)
{
ListNode* pTemp = p->next;
p->next = p->next->next;
pTemp->next = pHead->next;
pHead->next = pTemp;
}
head = pHead->next;
ptail->next = pHead;
pHead->next = NULL;
} while (0);
return head;
}