需要注意的點
- 一次只處理一個或者一對節(jié)點
- 給傳入的指針備份
- 考慮好各種情況窄俏,比如空指針和只有一個節(jié)點的情況譬正。
ListNode* reverseLinkedList(ListNode* pHead)
{
ListNode* pPrev = NULL;
ListNode* pNode = pHead;
ListNode* pNext = NULL;
while(pNode)
{
pNext = pNode->next;
pNode->next = pPrev;
pPrev = pNode;
pNode = pNext;
}
return pPrev;
}
遞歸的方法做
ListNode* reverseLinkedList(ListNode* pHead)
{
if (pHead == NULL || pHead->next == NULL)
{
return pHead;
}
else
{
ListNode* pNewHead = reverseLinkedList(pHead);
pNewHead->next = pHead;
pHead->next = NULL;
return pHead;
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者