代码未在deletenode函数中终止

时间:2019-07-18 12:59:53

标签: c++

void push(Node **headref,int newdata)
{


    Node *newnode=new Node();
    newnode->data=newdata;
    newnode->prev=NULL;
    newnode->next=*headref;
    if(*headref!=NULL)
    {
        (*headref)->prev=newnode;
    }
    *headref=newnode;


}


void deletenode(Node **headref,int key)
{




    Node *temp=*headref;

    while(*headref!=NULL)
    {
        if(temp->data==key)
        {
            temp->prev->next=temp->next;
            temp->next->prev=temp->prev;
            delete(temp);
        }
        temp=temp->next;
        *headref=(*headref)->next;
    }
}




int main()
{




    Node *head=new Node();
    head=NULL;
    push(&head,4);
    push(&head,3);
    push(&head,2);
    push(&head,1);
    deletenode(&head,2);
}

我希望deletenode()中的* headref末尾给出NULL,但这实际上没有发生。代码没有终止。

0 个答案:

没有答案