题目概述
解决思路
定义指针【pCur】和【pPrev】
并定义【pReverseHead】来保存返回后的头结点
当【pCur】不为空的时候,进行循环
先求出pCur】的下一个节点【pNext】节点,并判断其是否为空(判断【pCur】是否为最后一个节点)
如果是,则需要对【pReverseHead】进行赋值
否则,将【pCur】的下一个节点的指针指向【pPrev】
并将【pPrev】和【pCur】进行后移,进行下一次循环
代码实现
Node* ReverseList(Node* pHead)
{
Node* pPrev = NULL;
Node* pCur = pHead;
Node* pReverseHead = NULL;
while (pCur != NULL)
{
Node* pNext = pCur->_next;
if (pNext == NULL)
pReverseHead = pCur;
pCur->_next = pPrev;
pPrev = pCur;
pCur = pNext;
}
return pReverseHead;
}