15.链表反转
题目描述
输入一个链表,反转链表后,输出新链表的表头。
PHead,pre, next分别指向当前结点, 前一个结点, 后一个结点,每次迭代先更新当前结点的指针,记录下个结点的指向,转向,指向前一个结点的指针后移
1 class Solution {
2 public:
3 ListNode* ReverseList(ListNode* pHead) {
4 ListNode* next = pHead; // 记录后一个结点
5 ListNode* pre = NULL; // 记录前一个结点, pHead指向当前结点
7 while(next){
8 pHead = next;
9 next = pHead->next;
10 pHead->next = pre;
11 pre = pHead; // 指针后移
12 }
13 return pHead;
14 }
15 };