要求:设计一个算法,删除递增有序链表中值大于mink且小于maxk的所有元素(mink和maxk是给定的两个参数,其值可以和表中的元素相同,也可以不同 )。

[题目分析]
分别查找第一个值>mink的结点和第一个值 ≥maxk的结点,再修改指针,删除值大于mink且小于maxk的所有元素。
算法描述:

void delete(LinkList &L, int mink, int maxk) {
	p = L->next;
	while (p && p->data <= mink)
	{//查找第一个值>mink的结点
		pre = p;
		p = p->next;
	} 
	if (p)
	{
		while (p && p->data < maxk)
		{		// 查找第一个值 ≥maxk的结点
			p = p->next;
		}
		q = pre->next;
		pre->next = p;  // 修改指针
		while (q != p)
		{// 释放结点空间
			s = q->next;
			delete q;
			q = s;
		} 
	}
}