高效代码之反转单链表
单链表的反转是经常用到的
那么单链表的高效转换就很重要了。这里记录一下。方便用时查阅。
struct ListNode
{
int m_nValue;
ListNode * m_pNext;
};
//实现如下:
//反转链表需要3个指针
//1.指向当前元素pNode
//2.指向当前元素的前一个元素pPrev
//3.指向当前元素的后一个元素pNext
ListNode* ReverseList(ListNode* pHead)
{
ListNode* pReverseHead = NULL;
ListNode* pNode = pHead;
ListNode* pPrev = NULL;
while(pNode != NULL)
{
ListNode* pNext = pNode->m_pNext;
if(pNext == NULL)
{
pReverseHead = pNode;
}
pNode->m_pNext = pPrev;
pPrev = pNode;
pNode = pNext;
}
return pReverseHead;
}
参考自:剑指offer
2016-09-01 19:46:53
转载于:https://blog.51cto.com/qiaopeng688/1845340