单链表类型定义如下。
typedef struct node
{int data;
struct node *next;
}ListNode;
typedef ListNode *LinkList;
请编写一个函数,功能为在带头结点的单链表L中删除数值在指定范围内(x≤data≤y)的结点。
函数的原型如下。
void f34(LinkList &L,int x,int y);
例如,对于如下链表head:
【正确答案】:参考程序如下。
void f34(LinkList &head,int x,int y)
{LinkList p,q;
p=head;
while(p-> next!=NULL)
{if(x<=p-> next-> data&&p-> next-> data<=y)
{q=p-> next;
p-> next=q-> next;
free(q);
}
else
p=p-> next;
}
}