![](https://i-blog.csdnimg.cn/blog_migrate/6a02bcfd8e48286675f7ff1f419b77a9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d8bcc202eba09ec28d250fdcf919383c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/36eeb46fe215bac44f9f53c1d3d291f0.png)
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
//处理空链表
if(pHead == nullptr){
return nullptr;
}
ListNode* cur = pHead; //创建当前指针指向头节点
ListNode* pre = nullptr; //创建首指针指向前一个节点
while(cur != nullptr){ //当前指针指向空,退出循环
ListNode *temp = cur -> next; //记录当前节点的后一个节点
cur -> next = pre; //当前节点指向前一个节点
pre = cur; //前一个节点的指针后移一位
cur = temp; //当前节点的指针后移一位
}
return pre;
}
};