思路:设置多个指针,其中指针mid的操作为把当前的后一个指针赋值给指针L,再把自己的指针指向指向指针F,然后把指针L赋值给mid,再把mid赋值给F,这样过后,只要历遍整个链表,F指针就是最后一个指针而且指针的指向与原来的链表相反,达到了反转链表的目的
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode* F=nullptr;
ListNode* mid=head;
ListNode* L=nullptr;
while(mid)
{
L=mid->next;
mid->next=F;
F=mid;
mid=L;
}
return F;
}
};