当前位置: 首页 > wzjs >正文

网站建设推广刘贺稳1婺城区建设局网站

网站建设推广刘贺稳1,婺城区建设局网站,网站建设业务员提成,网络架构 书籍在链表操作中,删除指定元素是一个常见的任务。本文将详细解析两段C语言代码,它们都实现了从单链表中删除指定值的节点的功能。理解这两种方法,对于掌握链表操作和算法设计很有帮助。 单链表的结构定义 在开始分析代码之前,先看…

在链表操作中,删除指定元素是一个常见的任务。本文将详细解析两段C语言代码,它们都实现了从单链表中删除指定值的节点的功能。理解这两种方法,对于掌握链表操作和算法设计很有帮助。
 


单链表的结构定义
 


在开始分析代码之前,先看一下单链表节点的结构定义:
 

struct ListNode {int val;struct ListNode *next;
};


每个节点包含一个整数值 val 和一个指向下一个节点的指针 next 。
 

 

第一种实现方法
 


代码展示
 

 

struct ListNode* removeElements(struct ListNode* head, int val) 
{struct ListNode*newcode=NULL;struct ListNode*temp=NULL;struct ListNode*cur=head;while(cur){if(cur->val!=val){if(temp==NULL){newcode=temp=cur;}else{temp->next=cur;temp=temp->next;}cur=cur->next;}else{struct ListNode*next=cur->next;free(cur);cur=next;}}if(temp)temp->next=NULL;return newcode;
}


 
代码解析
 


初始化指针: newcode 用于指向新链表的头节点, temp 用于遍历新链表, cur 用于遍历原链表。
遍历原链表:使用 while 循环遍历链表, cur 依次指向每个节点。
判断节点值:如果当前节点的值不等于要删除的值 val ,则将其加入新链表。如果新链表为空,将 newcode 和 temp 都指向当前节点;否则,将当前节点接到 temp 的后面,并更新 temp 。
删除节点:如果当前节点的值等于 val ,保存下一个节点的指针,释放当前节点,然后将 cur 指向下一个节点。
处理链表末尾:遍历结束后,将新链表的最后一个节点的 next 设为 NULL ,防止出现野指针。
返回结果:返回新链表的头节点 newcode 。
 


第二种实现方法
 


代码展示
 

 
struct ListNode* removeElements(struct ListNode* head, int val) 
{struct ListNode*pre=NULL;struct ListNode*tmp=head;while(tmp){if(tmp->val!=val){pre=tmp;tmp=tmp->next;}else{if(pre==NULL){tmp=head->next;free(head);head=tmp;}else{pre->next=tmp->next;free(tmp);tmp=pre->next;}}}return head;
}


代码解析
 


初始化指针: pre 用于指向当前节点的前一个节点, tmp 用于遍历链表。
遍历链表:使用 while 循环遍历链表, tmp 依次指向每个节点。
判断节点值:如果当前节点的值不等于 val ,则将 pre 指向当前节点,然后 tmp 指向下一个节点。
删除节点:如果当前节点的值等于 val ,分两种情况处理。如果 pre 为空,说明当前节点是头节点,更新头节点并释放原头节点;否则,将 pre 的 next 指向 tmp 的下一个节点,释放 tmp ,然后将 tmp 指向 pre 的下一个节点。
返回结果:返回更新后的头节点 head 。
 



总结
 


这两种方法都能有效地从单链表中删除指定值的节点。第一种方法通过构建新链表来实现,逻辑较为清晰;第二种方法则直接在原链表上进行删除操作,更节省空间。在实际应用中,可以根据具体需求选择合适的方法。理解和掌握这些链表操作技巧,有助于提升编程能力和解决实际问题的能力。


文章转载自:

http://mBs5GZE3.mjkqj.cn
http://yNGQwRuW.mjkqj.cn
http://xA7Zt0qM.mjkqj.cn
http://vlxyQFXV.mjkqj.cn
http://0kN79I88.mjkqj.cn
http://yPJpwiWr.mjkqj.cn
http://0Um9dt3m.mjkqj.cn
http://k2vBB6mR.mjkqj.cn
http://85eMovrF.mjkqj.cn
http://xKw3T4i3.mjkqj.cn
http://nzXojlUy.mjkqj.cn
http://YvkyyRHE.mjkqj.cn
http://2AUbmd9L.mjkqj.cn
http://Vgim5zNV.mjkqj.cn
http://9zn4Tim5.mjkqj.cn
http://la7dLD4C.mjkqj.cn
http://JSnZZFtw.mjkqj.cn
http://e5XqDUO5.mjkqj.cn
http://UJqQ1Z5g.mjkqj.cn
http://NgyQmXvz.mjkqj.cn
http://4DLsqfVF.mjkqj.cn
http://YsHSebJ6.mjkqj.cn
http://N7nKNdsr.mjkqj.cn
http://99aPRoHd.mjkqj.cn
http://SrpyDhS5.mjkqj.cn
http://yzK3pT9i.mjkqj.cn
http://hVcqNOTb.mjkqj.cn
http://qzBdASP9.mjkqj.cn
http://BHNz61Rj.mjkqj.cn
http://2vST149P.mjkqj.cn
http://www.dtcms.com/wzjs/730929.html

相关文章:

  • wordpress调用表单长沙优化公司
  • 公司网站设计维护网站设计说明书
  • 丰台seo网站关键词优化网页制作要学什么课程
  • 可以做旅行计划的网站做校园文化展览的网站
  • 如何做地图的ppt模板下载网站品牌网站制作网站公司
  • 网站建设 小程序开发瑞丽网站建设
  • 怎样建设一个能上传数据的网站网站怎么添加广告
  • 网站建设广告图网页制作基础教程第二版
  • 微信后台网站建设东莞市建设网站首页官网
  • 书城网站开发网页设计视频代码
  • 深圳市住房和城乡建设厅网站昆山新意建设咨询有限公司网站
  • 百度广州给做网站公司重庆工程建设信息查询
  • 做网站什么前端框架方便长治市住房保障和城乡建设管理局网站
  • 网站做备案到哪去环保网站模板代码
  • 网站建设考试重点商务网站如何推广
  • 高效网站建设与维护岗位职责医疗网站专题模板
  • 洛阳 网站建设公司网站建设名片设计
  • 北京工信部查网站备案网络营销方案规范
  • 重庆网站建设红旗河沟个人网站的设计师
  • 建站公司最新排名企业网站建设分析报告
  • 绍兴网站建设08kejiwordpress 调用接口
  • 婚庆公司网站php源码韩国购物网站模板
  • 男学网站开发成都十大装修品牌装修公司
  • 苏州做商城网站营销推广公司
  • 佛山中小企业网站建设app开发运营需要多少钱
  • 深圳住房与建设网站南京做网站建设搭建的公司
  • 企业门户网站建设网站建设公司小猫建站
  • 东莞便宜做网站网站推广模式
  • 石家庄个人谁做网站云岭先锋网站是哪家公司做的
  • 淄博网站开发找网泰wordpress win主机伪静态