ListNode * Reverse(ListNode *pHead)
{
if (pHead == NULL)
return NULL;
ListNode * pNewHead = NULL;
ListNode * pCur = pHead;
ListNode * pLast = NULL;
while (pCur != NULL) {
pLast = pCur->next;
pCur->next = pNewHead;
pNewHead = pCur;
pCur = pLast;
}
return pNewHead;
}