无序链表删除介于给定两个值之间的元素
算法思路:三个指针,p:工作指针 pre:p的前驱指针 q:中间变量指针,用于删除节点
//无序链表删除介于给定两个值之间的元素
bool LinkList_DelA2B(LinkList &L,int A,int B){
if(A>B || L == NULL) return false;
LNode *pre = L,
*p = L->next,
*q;
while(p != NULL){
if(p->data<A || p->data>B){//如果不在给定区间就将pre和p指向下一个节点
pre = p;
p = p->next;
}
else{//如果在指定区间就删除节点
q = p;
p = p->next;
pre->next = p;
free(q);
}
}
return true;
}