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,但这实际上没有发生。代码没有终止。