(循环判断移动指针、判断相等、分头分中,不等无法删除)
dnode* del(dnode *head,int num){
//双链表删除值为num的节点
dnode *p1,*p2;
p1=head;
while(p1->data=num&& p1->next!=NULL)
p1=p1->next;
if(num==p1->data){
if(p1==head){
head=p1->next;
head->pre=NULL;
free(p1);
}
else{
p2=p1->pre;
p2->next=p1->next;
p1->next->pre=p2;
}
}
else printf("nonum\n");
return head;
}