反转链表
class Solution
{
public:
ListNode* reverseList(ListNode* head)
{
//双指针 抄写
ListNode* cur=head;
ListNode* pre=nullptr;
ListNode* temp;
//首先定义一个cur指针,指向头结点,再定义一个pre指针,初始化为null。
while(cur) //当cur为nullptr的时候 跳出
{ temp=cur->next;
cur->next=pre;
//然后就要开始反转了,首先要把 cur->next 节点用tmp指针保存一下,也就是保存一下这个节点。
//为什么要保存一下这个节点呢,因为接下来要改变 cur->next 的指向了,将**cur->next 指向pre** ,此时已经反转了第一个节点了。
//更新pre cur指针
pre=cur;
cur=temp;
}
return pre;
}
};