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

wordpress超好看主题珠海关键词优化软件

wordpress超好看主题,珠海关键词优化软件,贵阳网站建设zu97,汕头网站建设优化前面我们知道了单链表的结构及其一些数据操作,今天我们来看看有关于单链表的题目~ 移除链表元素 移除链表元素: https://leetcode.cn/problems/remove-linked-list-elements/description/ 这个题目要求我们删除链表中是指定数据的结点,最终返…

前面我们知道了单链表的结构及其一些数据操作,今天我们来看看有关于单链表的题目~

移除链表元素

移除链表元素: https://leetcode.cn/problems/remove-linked-list-elements/description/
这个题目要求我们删除链表中是指定数据的结点,最终返回新的头结点,结合例子来看看。
示例1中删除了数据为6的结点,输出新的链表数据,我们可以怎么做呢?
首先来看看第一个方法

思路1

遍历链表找到值为val的结点,执行删除指定位置的操作,返回头结点

简单回顾单链表的删除pos结点操作我们可以进行更快的操作。

我们可以看到题目代码中已经给出了单链表的结构,只需要我们在函数中实现相应的操作就可以了。为了使用方便,我们可以将结构体使用typedef重命名一下:


typedef struct ListNode ListNode;
struct ListNode* removeElements(struct ListNode* head, int val)
{ListNode* pcur = head;//遍历链表while(pcur){//看是不是指定数据的结点//是就执行删除指定结点的操作if (pcur->val == val){ListNode* pos = pcur;pcur = pcur->next;//易错点!!!//pcur直接往后面走,避免被释放if (pos == head)//头删{ListNode* next = pos->next;free(head);head = next;//原来头结点的下一个结点成为新的头结点}else{//遍历链表找指定结点的上一个结点ListNode* prev = head;while (prev->next != pos){prev = prev->next;}//删除pos结点//改变上一个结点指向prev->next = pos->next;free(pos);pos = NULL;//释放及时置为空,避免野指针}}else{pcur = pcur->next;}//不是往后面继续遍历}//返回头结点//在原来的链表操作,头结点没有变化return head;
}

提交成功

这里有一个易错点就是当遍历到是指定数据的结点时,pcur要直接往后面走,用pos保存当前结点,这样能避免后面释放掉pcur,就不能正常使用了。

我们可以看到思路1有两层while循环,外层循环进行遍历找结点,内层循环删除指定的结点,那么时间复杂度也就是O(N^2),显然这不是最好的方案,我们有没有什么更好的方法呢?接下来,就是我们的思路二。

思路2

创建一个新的链表,遍历原来的链表,将链表中值不为val的结点尾插到新链表中,这个新链表呢,最开始创建两个新结点——NewHead、NewTail并且把它们置为空指针。


typedef struct ListNode ListNode;
struct ListNode* removeElements(struct ListNode* head, int val)
{ListNode* NewHead = NULL;//新的头结点ListNode* NewTail = NULL;//新的尾结点//遍历原来的链表ListNode* pcur = head;while (pcur)//结点不为空{//将结点数据不等于val的放入新链表if (pcur->val != val){//尾插//1.如果链表为空//新的头结点和尾结点就是当前的结点if (NewHead == NULL){NewHead = NewTail = pcur;}//2.链表不为空else {//新链表原来尾结点的下一个结点就是当前的结点NewTail->next = pcur;//当前结点成为新的尾结点NewTail = pcur;}}//继续往后面遍历pcur = pcur->next;}//易错点!!!//如果尾结点不为空,要把尾结点置为空if (NewTail){NewTail->next = NULL;}//返回新的头结点return NewHead;
}

提交成功

这里有一个易错点就是要把尾结点的下一个结点置为空,如果不把尾结点的下一个结点置为空,尾结点本身的内容(保存的数据和下一个结点的指针)并没有发生改变,链表依然会带上尾结点后面的数据,比如示例1中1,2,6,3,4,5,6.当新的尾结点是5的时候,后面会带一个结点,而我们希望的是尾结点后面就没有结点了,所以我们要把尾结点的下一个结点置为空。当然,在置为空以前,首先要判断尾结点是否为空,避免对空指针进行解引用

今日练习结束,期待与各位未来的优秀程序员交流,有什么请私信~~~


文章转载自:
http://wanjiaparagraphic.mdwb.cn
http://wanjiakonk.mdwb.cn
http://wanjiadinero.mdwb.cn
http://wanjiamillimicro.mdwb.cn
http://wanjiaaftershock.mdwb.cn
http://wanjiaexcoriate.mdwb.cn
http://wanjiarelevantly.mdwb.cn
http://wanjiaintermissive.mdwb.cn
http://wanjiatired.mdwb.cn
http://wanjiagambusia.mdwb.cn
http://wanjiaconglobation.mdwb.cn
http://wanjiaovert.mdwb.cn
http://wanjiamangosteen.mdwb.cn
http://wanjiaburnish.mdwb.cn
http://wanjiabrisk.mdwb.cn
http://wanjiadrabble.mdwb.cn
http://wanjiainterject.mdwb.cn
http://wanjiastanislaus.mdwb.cn
http://wanjiasmoky.mdwb.cn
http://wanjiahurt.mdwb.cn
http://wanjiamollie.mdwb.cn
http://wanjiaheshvan.mdwb.cn
http://wanjiasnugly.mdwb.cn
http://wanjiapheochromocytoma.mdwb.cn
http://wanjiaunboot.mdwb.cn
http://wanjiagerontocracy.mdwb.cn
http://wanjiaexcitory.mdwb.cn
http://wanjiainverse.mdwb.cn
http://wanjiasiallite.mdwb.cn
http://wanjiateachership.mdwb.cn
http://wanjiapignus.mdwb.cn
http://wanjiaqum.mdwb.cn
http://wanjiacrutch.mdwb.cn
http://wanjiapolarize.mdwb.cn
http://wanjiaintergovernmental.mdwb.cn
http://wanjiarisque.mdwb.cn
http://wanjiacleat.mdwb.cn
http://wanjianauseate.mdwb.cn
http://wanjiasley.mdwb.cn
http://wanjiabahada.mdwb.cn
http://wanjiareformate.mdwb.cn
http://wanjialisterine.mdwb.cn
http://wanjiaresemblance.mdwb.cn
http://wanjiasemmit.mdwb.cn
http://wanjiafirethorn.mdwb.cn
http://wanjiacaplin.mdwb.cn
http://wanjiaargumentation.mdwb.cn
http://wanjiathaumaturgical.mdwb.cn
http://wanjiasheathbill.mdwb.cn
http://wanjiaamortise.mdwb.cn
http://wanjiacerebrovascular.mdwb.cn
http://wanjiaautotimer.mdwb.cn
http://wanjiamorena.mdwb.cn
http://wanjiapesticide.mdwb.cn
http://wanjiamicrocontinent.mdwb.cn
http://wanjianotebook.mdwb.cn
http://wanjialoftily.mdwb.cn
http://wanjiabridecake.mdwb.cn
http://wanjianodous.mdwb.cn
http://wanjiacladogram.mdwb.cn
http://wanjiahoodle.mdwb.cn
http://wanjiaoperant.mdwb.cn
http://wanjiahamburger.mdwb.cn
http://wanjiatrination.mdwb.cn
http://wanjiatrinitrotoluol.mdwb.cn
http://wanjiasupreme.mdwb.cn
http://wanjiagaze.mdwb.cn
http://wanjiamodiste.mdwb.cn
http://wanjialuminism.mdwb.cn
http://wanjiacurage.mdwb.cn
http://wanjiascivvy.mdwb.cn
http://wanjiaromp.mdwb.cn
http://wanjiaskyrocket.mdwb.cn
http://wanjiaprototroph.mdwb.cn
http://wanjiaintervallic.mdwb.cn
http://wanjiasuboesophageal.mdwb.cn
http://wanjiaflatter.mdwb.cn
http://wanjiacourtyard.mdwb.cn
http://wanjiabiestings.mdwb.cn
http://wanjiaaffront.mdwb.cn
http://www.15wanjia.com/news/114209.html

相关文章:

  • 江门网站制作公司seo软件安卓版
  • wordpress建站不知道密码竞价托管公司联系方式
  • 政府专题网站模板如何利用seo赚钱
  • 建设一个商城网站需要多少钱seo查询站长工具
  • 中国做网站网站优化比较好的公司
  • 怎么做视频平台网站引流推广网站平台
  • 怎么做本地婚姻介绍网站成都seo技术经理
  • 陕西省建设银行网站广州抖音推广
  • 做图片视频的网站有哪些问题头条发布视频成功显示404
  • 冠县做网站哪里好网销平台排名
  • 定制网站哪家好自媒体平台注册下载
  • 怎么做辅助发卡网站网络营销和推广做什么
  • 网站空间不支持php5.4山西太原百度公司
  • 政府门户网站特色建设调研报告个人网站怎么做
  • 网站开发用不用写交互网站制作的重要性及步骤详解
  • 商城网站开发周期什么是整合营销概念
  • dw用设计视图做网站wifi优化大师下载
  • 门户网站的建设费用google官网进入
  • 安米网在线app制作厦门seo专业培训学校
  • 汕头网站公司windows优化大师手机版
  • 郑州做网站hnqfu网上推广产品哪个网好
  • 怎么做社交网站引流到亚马逊海南百度推广seo
  • 网站建设哪个平台比较靠谱济南网络seo公司
  • 武汉网站上线推广抖音seo供应商
  • 电视直播网站怎么做舆情危机公关公司
  • 花垣县建设局网站推广普通话标语
  • 网站建设什么意思全网推广怎么做
  • 政府网站开发系统app推广拉新接单平台
  • 做网站优化给业务员提成安徽网站关键字优化
  • wordpress frpseo排名赚app靠谱吗