在一个带表头结点单链表中所有元素结点数据值无序排列,删除表中所有介于给定两个值之间的元素的元素(若存在)

代码:

#include"initList/initList.h"

void delRandX_Y(LinkList* L,TypeData x,TypeData y){
    LinkList* p;
    LinkList* pre;
    p = L->next;
    pre = L;
    LinkList* temp;
    if(L == NULL || L->next == NULL)
        return ;
    while(p!=NULL){
        //找到并删除
        if(p->data > x && p->data < y){
            temp = p;
            pre->next = p->next;
            p = p->next;
            free(temp);
        }else{
            pre = pre->next;
            p = p->next;
    }
}
}

 

结果:如删除30-60之间元素

在一个带表头结点单链表中所有元素结点数据值无序排列,删除表中所有介于给定两个值之间的元素的元素(若存在)_第1张图片

你可能感兴趣的:(A研)