题目描述
输入一个链表,反转链表后,输出链表的所有元素。
代码记录
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
ListNode * pPre = NULL; // 保存当前结点的上一个结点
ListNode * pNext = pHead; // 保存当前结点的下一个结点
while(pNext)
{
ListNode * pCur = pNext; // 保存当前结点
pNext = pNext->next; // 向后移动推进
pCur->next = pPre; // 将当前结点的next 指向前一个节点
if(pNext == NULL) // 最后一个结点时更新头指针
{
pHead = pCur;
}
pPre = pCur; // 向后推进
}
return pHead;
}
};