删除单链表中所有介于给定的两个值之间的元素的元素
设在一个带头结点的单链表中所有元素结点的数值域无序,编写一个函数,删除表中所有介于给定的两个值(作为函数参数给出)之间的元素的元素(若存在)
分析:因为链表是无序的,所以只能逐个结点进行检查,执行删除
代码如下:
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指针向后移
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构