在带表头且无序的链表中删除属于给定范围值的元素

#include "stdafx.h"
#include<stdio.h> 
#include<malloc.h> 
#include<stdlib.h>
typedef int type;
typedef struct lnode //定义链表结点的数据结构 
{
    int data;
    struct lnode *next;
}Lnode;
typedef Lnode node;
typedef struct dnode//定义双链表结点的数据结构 
{
    int data;
    struct dnode *lnext;
    struct dnode *rnext;
}Dnode;
int delvalue7(node *h, type a, type b)
{
    node *h1 = h;
    while (h1->next != NULL)
    if (h1->next->data>a&&h1->next->data<b)
    {
        node *p = h1->next;
        h1->next = h1->next->next;
        free(p);
    }
    else  h1 = h1->next;
    return 0;
}
;