题解 | #反转链表#
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
//将链表节点摘下来挂在链表头部的解法。 class Solution { public: ListNode* ReverseList(ListNode* head) { ListNode* p=new ListNode(-1); if(head==nullptr || head->next==nullptr) return head;//如果只有一个节点或没有节点 p->next=head; ListNode* current=head->next; ListNode*next=current->next; while(current!=nullptr) { next=current->next;//缓存一下next节点 current->next=p->next; p->next=current;//通过这两步把current插到头部。 current=next;//递进 } head->next=nullptr;//head的next并不应该有后续,否则会形成环。 return p->next; } };