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

上海网站建设的公司武汉全网营销推广公司

上海网站建设的公司,武汉全网营销推广公司,做商品抬价是什么兼职网站,百度链接提交工具在链表学习中,我们已经了解了单链表和双链表,两者的最后一个结点都会指向NULL;今天我们介绍的循环列表则不同,其末尾结点指向的这是链表中的一个结点。 循环链表是一种特殊类型的链表,其尾节点的指针指向头节点&#…

在链表学习中,我们已经了解了单链表和双链表,两者的最后一个结点都会指向NULL;今天我们介绍的循环列表则不同,其末尾结点指向的这是链表中的一个结点。

循环链表是一种特殊类型的链表,其尾节点的指针指向头节点,形成一个闭环。与普通链表相比,它没有明确的结束节点,遍历时可无限循环。这种结构特别适合处理循环任务,如音频播放列表循环播放、任务调度等场景,能有效减少节点访问的边界检查,提高操作效率。

在循环链表的题目中,通常会涉及到两个问题:

1.如何判断该链表为循环链表

2.循环链表的循环入口位置。

力扣的142题就是循环链表题,以下是题解与代码:

1、快慢指针寻找是否有环,

1).我们声明两个指针,快指针每次向链表下方走两步,慢指针则走一步;

2).如果有环,则快指针先进入环,慢指针后进入环, 如果无环,则fast会走出循环判断条件,返回空

3).有环时,慢指针进入环后,快指针相对慢指针每次移动一格,也就是快指针会追上慢指针。

4).快指针在一圈内追上慢指针:如果慢指针走一圈,快指针则走了两圈,在这两圈内,快指针一定会与慢指针相遇,所以快指针在一圈内追上慢指针

5).两者相遇时、声明index记录该点。

2、如何判断环的起点

head到起点记为 x;起点到相遇点记为y;相遇点再到起点记为z; 则y+z为环长,

慢指针与快指针所走距离差两倍

x+y=n(y+z)

x=(n-1)(y+z)+z

也就是

入口距离=(n-1)圈长+相遇点到入口的距离

所以我们可以让index 与head同时出发,两者会同时到达入口,(该过程中index肯会绕环未知圈)

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

 

 

http://www.dtcms.com/wzjs/390528.html

相关文章:

  • 教育直播网站建设经典软文案例200字
  • 技能培训班有哪些进行优化
  • 网站后台管理系统框架seo是做什么的
  • 黄石做企业网站seo网站关键词优化方式
  • 做网站签订合同seo确定关键词
  • 做行业网站广告能赚多少钱深圳优化公司排名
  • wordpress 情侣博客南宁seo推广公司
  • 有哪些网站可以兼职做笔译网站推广的概念
  • 微信开发功能网站快速优化排名方法
  • 大学生怎么做网站优化大师优化项目有
  • 网站美工效果图怎么做海南seo排名优化公司
  • 建设部网标准下载网站seo兼职接单平台
  • 做网站协议书宁波seo在线优化方案公司
  • 西安网站建设品牌公司推荐泰州百度关键词优化
  • 重庆公司网站建设价格网络营销成功的案例及其原因
  • 做外汇需要关注哪几个网站郑州网站优化seo
  • 山东省 安全双体系建设网站爱站长尾词
  • 量个网站一个域名seo技术外包公司
  • 青岛关键词推广seo白山seo
  • 重庆网站开发工资世界杯积分榜排名
  • 梨树县住房和城乡建设局网站网络营销专业的就业方向
  • 网站开发语言更换企业网站优化哪家好
  • 怎样做企业学校网站重庆seo霸屏
  • 大型网站建设哪家快全网热搜关键词排行榜
  • 廊坊网站制作系统游戏代理300元一天
  • 杨浦科技网站建设专业竞价托管哪家好
  • 日本做爰动漫网站怎么做app推广代理
  • 成都小程序开发方案刷移动端seo软件
  • 手机网站模版更换技巧hao123影视
  • 本地高端网站建设信息大全微信朋友圈广告在哪里做