一、简述
完成对单向链表的反转。固定维护两个指针,时间复杂度为O(n),空间复杂度为O(1)。
二、代码实现
ListNode* ReverseList(ListNode* pHead) {
if((NULL == pHead) || (NULL == pHead->next)){
return pHead;
}
ListNode *prev = pHead;
ListNode *pnext = pHead->next;
while(pnext)
{
prev->next = pnext->next;
pnext->next = pHead;
pHead = pnext;
pnext = prev->next;
}
return pHead;
}