链表头插法易错

class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        if(!head)return NULL;
        ListNode* pre=new ListNode(-1);
        ListNode* tmp;
        while(head){
            tmp=head;
            head=head->next;
            tmp->next=pre->next;
            pre->next=tmp; 
        }
        return tmp;
    }
};

tmp=head其实二者都是指向同一节点的指针,并没有创建
指针的备份,需要对这一节点做出保护!!!!

posted @ 2021-11-18 20:25  Zupernova  阅读(42)  评论(0编辑  收藏  举报