删除单链表中所有介于给定的两个值之间的元素的元素

设在一个带头结点的单链表中所有元素结点的数值域无序,编写一个函数,删除表中所有介于给定的两个值(作为函数参数给出)之间的元素的元素(若存在)

分析:因为链表是无序的,所以只能逐个结点进行检查,执行删除

代码如下:

void Delete_Range(LinkedList& L, int min, int max)
{
	LNode* p = L->next;		//p为遍历指针
	LNode* pre = L;			//pre为比遍历指针的前驱指针
	while(p) {
		if(p->data > min && p->data < max) {	//找到待删除结点
			pre->next = p->next;
			free(p);
			p = pre->next;
		} else {			//否则继续找被删除结点
			pre = p;		//pre指针向后移
			p = p->next;	//p指针向后移
		}
	}
}
posted @   LilyFlower  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示