思路:采用双指针算法,pre指向前一个节点,cur指向pre后面的节点,这里的temp是个临时变量,用来储存cur里next指向的下一个节点,两个指针不断移动,并且更改两个指针所指节点链表指针的指向
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode* pre=nullptr;//左指针
ListNode* cur=head;//右指针
while(cur!=nullptr)
{
ListNode* temp=cur->next;//记录这个指针指向的下一个节点
cur->next=pre;//将这个指针指向前一个节点
pre=cur;//指针前移
cur=temp;//指针前移
}
return pre;
}
};