反转链表的关键是要保存前后节点,
先用right指针保存当前节点的下一节点,
反转时当前节点指向左节点,
然后为下一次反转做准备,left=cur,cur=right
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode* left=nullptr;
ListNode* cur=head;
ListNode* right;
while(cur!=nullptr){
right=cur->next;
cur->next=left;
left=cur;
cur=right;
}
return left;
}
};