题目:设在一个带表头结点的单链表中所有元素结点的数据值无序,试编写一个函数,删除表中所有介于给定的两个值(作为函数参数给出)之间的元素的元素。(若存在)
关键字:无序带表头结点单链表+按范围删除
思路
因为链表是无序的,所以只能是逐个结点进行检查,执行删除。
void RangeDelete(LinkList &L,int min,int max){
LNode*pre=L,*p=L->next;
while(p!=NULL)
if(p->data>min&&p->data<max){
pre->next=p-next;
free(p);
p=pre->next;
}
else
pre=p;
p=p->next;
}