题目描述
输入一个链表,反转链表后,输出链表的所有元素。
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
if(pHead==nullptr) //先判断链表是否为空
return nullptr;
ListNode *pNewlist = nullptr;
ListNode *pCur = pHead;
ListNode *pPre = nullptr;
while(pCur!=nullptr)
{
ListNode *pNext = pCur->next;
if(pNext == nullptr) //注意当下一个节点为空时,要保存当前结点
pNewlist = pCur;
pCur->next = pPre;
pPre = pCur;
pCur = pNext;
}
return pNewlist;
}
};