【数据结构】链表相关题目(中档题)
创始人
2025-05-30 08:04:22

在这里插入图片描述

🚀write in front🚀
📜所属专栏:初阶数据结构
🛰️博客主页:睿睿的博客主页
🛰️代码仓库:🎉VS2022_C语言仓库
🎡您的点赞、关注、收藏、评论,是对我最大的激励和支持!!!
关注我,关注我,关注我你们将会看到更多的优质内容!!

在这里插入图片描述

文章目录

  • 前言:
    • 例题1:
      • 方法1:
      • 方法2:
    • 例题2:
      • 完整代码:
  • 总结

前言:

  在前面的练习中,我们简单练习了链表的相关题目,今天我们在来做一些拓展!

例题1:

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

方法1:

  在上一篇博客里面,我们讲述了快慢指针的概念:通过步长的差异处理环的问题。而这道题我们要寻找入口点,我们该如何处理呢?

首先,我们假设

  • 起始点到入口的长度为L,
  • 入口到相遇点的距离为X,
  • 环的长度为C。

接下来我们通过快慢指针的两个性质(快指针是慢指针步数的两倍,快慢指针最后相遇)列出一个方程:
在这里插入图片描述
  由得出的结论我们可以看出,如果让一个指针a从起点出发,另一个指针b从相遇点出发,如果是闭环,则他们一定会相遇!(这里我们并不需要算出n的值,因为n的值是是让a指针多走n-1个整圈,不影响和b指针相遇)。
下面我们来看看代码:

struct ListNode *detectCycle(struct ListNode *head) 
{struct ListNode*slow=head,*fast=head;while(fast&&fast->next){slow=slow->next;fast=fast->next->next;if(fast==slow){struct ListNode*cur=head;while(cur!=slow){cur=cur->next;slow=slow->next;}return slow;}}    return NULL;
}

方法2:

  如果同学们在做题时无法自己推出这个结论,那么此时我们也可以将相遇点断开,此时就变成了寻找公共节点的题目了。
在这里插入图片描述

例题2:

在这里插入图片描述
对于这道题目,大家可能最先会想到计数器的方法,通过记录每个random的位置,在拷贝的链表里面找到对于位置依次连接。但是这样会导致时间复杂度非常的低下:O(N^2)
在这里插入图片描述
为了降低复杂度,就不得不使用另外一种方法。要降低时间复杂度,我们就希望能快速的找到原节点的拷贝节点。怎么找呢?

1.拷贝节点链接在原节点后面
在这里插入图片描述
在这里插入图片描述

2.此时拷贝节点的random就是原节点random->next
在这里插入图片描述
在这里插入图片描述

3.拷贝节点解下来,链接成新链表,最后将原链表还原。
在这里插入图片描述
在这里插入图片描述

完整代码:

struct Node* copyRandomList(struct Node* head) 
{//第一步struct Node*cur=head;while(cur){struct Node* newnode=(struct Node*)malloc(sizeof(struct Node));struct Node* next=cur->next;cur->next=newnode;newnode->next=next;newnode->val=cur->val;cur=next;}//第二步cur=head;while(cur){struct Node*prev=cur->next;if(cur->random==NULL){prev->random=NULL;}else{prev->random=cur->random->next;}cur=cur->next->next;}//第三步struct Node* newhead=NULL,*newtail=NULL;cur=head;while(cur){struct Node*prev=cur->next;struct Node*next=prev->next;if(newhead==NULL){newhead=newtail=prev;}else{newtail->next=prev;newtail=prev;}cur=next;}return newhead;
}

总结

  链表的相关题目到这里就结束了,当然同学们也可以去oj看看其他题:oj题
  更新不易,辛苦各位小伙伴们动动小手,👍三连走一走💕💕 ~ ~ ~ 你们真的对我很重要!最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!

专栏订阅:
每日一题
c语言学习
算法
智力题
初阶数据结构
更新不易,辛苦各位小伙伴们动动小手,👍三连走一走💕💕 ~ ~ ~ 你们真的对我很重要!最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!

在这里插入图片描述

相关内容

热门资讯

etc办理点(etc办理点节假... 今天给各位分享etc办理点的知识,其中也会对etc办理点节假日休息吗进行解释,如果能碰巧解决你现在面...
宝马1181报价及图片(宝马1... 今天给各位分享宝马1181报价及图片的知识,其中也会对宝马1181报价及图片及价格进行解释,如果能碰...
限行处罚扣分吗(限行被扣分吗)... 本篇文章极速百科给大家谈谈限行处罚扣分吗,以及限行被扣分吗对应的知识点,希望对各位有所帮助,不要忘了...
车车(车车车念什么) 车车 车... 今天给各位分享车车的知识,其中也会对车车车念什么进行解释,如果能碰巧解决你现在面临的问题,别忘了关注...
毕节景点(毕节景点排名) 毕节... 本篇文章极速百科给大家谈谈毕节景点,以及毕节景点排名对应的知识点,希望对各位有所帮助,不要忘了收藏本...
二手车提档后上牌流程(二手车提... 今天给各位分享二手车提档后上牌流程的知识,其中也会对二手车提档上牌流程及费用进行解释,如果能碰巧解决...
高速路免费到几号(春节后高速路... 本篇文章极速百科给大家谈谈高速路免费到几号,以及春节后高速路免费到几号对应的知识点,希望对各位有所帮...
东本(东本与广本谁的质量好) ... 今天给各位分享东本的知识,其中也会对东本与广本谁的质量好进行解释,如果能碰巧解决你现在面临的问题,别...
朗动和k3哪个好(k3和朗动哪... 本篇文章极速百科给大家谈谈朗动和k3哪个好,以及k3和朗动哪个更值得购买对应的知识点,希望对各位有所...
路虎敞篷suv(路虎敞篷suv... 今天给各位分享路虎敞篷suv的知识,其中也会对路虎敞篷suv揽胜极光价格进行解释,如果能碰巧解决你现...
莱阳到烟台动车(莱阳到烟台动车... 今天给各位分享莱阳到烟台动车的知识,其中也会对莱阳到烟台动车时刻表高铁时刻表进行解释,如果能碰巧解决...
雪佛兰跑车(迪士尼雪佛兰跑车)... 今天给各位分享雪佛兰跑车的知识,其中也会对迪士尼雪佛兰跑车进行解释,如果能碰巧解决你现在面临的问题,...
郑州限号时间段(郑州限号时间段... 本篇文章极速百科给大家谈谈郑州限号时间段,以及郑州限号时间段几点到几点中牟对应的知识点,希望对各位有...
2019滴滴车型库(2019滴... 今天给各位分享2019滴滴车型库的知识,其中也会对2019滴滴车型一览表进行解释,如果能碰巧解决你现...
鹤壁到郑州高铁(鹤壁到郑州高铁... 今天给各位分享鹤壁到郑州高铁的知识,其中也会对鹤壁到郑州高铁多少公里进行解释,如果能碰巧解决你现在面...
石家庄高铁站是哪个站(石家庄高... 本篇文章极速百科给大家谈谈石家庄高铁站是哪个站,以及石家庄高铁站是哪个站下车对应的知识点,希望对各位...
23路公交车时间表(顺义23路... 本篇文章极速百科给大家谈谈23路公交车时间表,以及顺义23路公交车时间表对应的知识点,希望对各位有所...
阳春高铁最新消息(阳春高铁最新... 本篇文章极速百科给大家谈谈阳春高铁最新消息,以及阳春高铁最新消息今天对应的知识点,希望对各位有所帮助...
郑州外地车限行规定(郑州外地车... 本篇文章极速百科给大家谈谈郑州外地车限行规定,以及郑州外地车限行规定时间对应的知识点,希望对各位有所...
成都地铁7号线运营时间(成都地... 本篇文章极速百科给大家谈谈成都地铁7号线运营时间,以及成都地铁7号线运营时间表2022对应的知识点,...
世界最好的车(世界最好的车是什... 今天给各位分享世界最好的车的知识,其中也会对世界最好的车是什么牌子 排名进行解释,如果能碰巧解决你现...
k1136次列车途径车站(k1... 本篇文章极速百科给大家谈谈k1136次列车途径车站,以及k1136次列车途经站点对应的知识点,希望对...
特斯拉suv(特斯拉suv30... 今天给各位分享特斯拉suv的知识,其中也会对特斯拉suv30万左右进行解释,如果能碰巧解决你现在面临...
成都高铁站在哪里(成都高铁站是... 本篇文章极速百科给大家谈谈成都高铁站在哪里,以及成都高铁站是哪个站台对应的知识点,希望对各位有所帮助...
丰田小型车(广汽丰田小型车) ... 本篇文章极速百科给大家谈谈丰田小型车,以及广汽丰田小型车对应的知识点,希望对各位有所帮助,不要忘了收...
大指挥官报价2018(2021... 今天给各位分享大指挥官报价2018的知识,其中也会对2021大指挥官车型进行解释,如果能碰巧解决你现...
衡水车辆违章查询(衡水车辆违章... 本篇文章极速百科给大家谈谈衡水车辆违章查询,以及衡水车辆违章查询网官网对应的知识点,希望对各位有所帮...
徐州到淮安(徐州到淮安高铁) ... 今天给各位分享徐州到淮安的知识,其中也会对徐州到淮安高铁进行解释,如果能碰巧解决你现在面临的问题,别...
交警大队投诉电话(长安交警大队... 本篇文章极速百科给大家谈谈交警大队投诉电话,以及长安交警大队投诉电话对应的知识点,希望对各位有所帮助...
北汽s50图片及报价(北汽s3... 本篇文章极速百科给大家谈谈北汽s50图片及报价,以及北汽s350报价及图片对应的知识点,希望对各位有...