本来的链表是1->2->3等类似,然后需要变成3->2->1->NULL,所以需要一个next指针来保存一下list->next的位置,毕竟是要把next指针位置更改,然后再设一个prev指针初始指向NULL,每次变化的时候让prev指向当前list位置
/**
* 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* prev=NULL;
ListNode* list=head;
while(list!=NULL){
ListNode* next=list->next;
list->next=prev;
prev=list;
list=next;
}
return prev;
}
};