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

东莞机电学校网站建设与管理如何修改网站ico

东莞机电学校网站建设与管理,如何修改网站ico,建设协会网站的公司,专业建设外贸网站制作题目 思路 这个题其实与之前环形链表的题差不多,这个麻烦的一点是需要你返回入环的第一个节点。 若我们继续用哈希表还是很简单,就是继续遍历链表,遇到的第一个重复的值即为入环的第一个节点。 这里我们看一下快慢指针的方法。 这里我们假…

题目

思路

这个题其实与之前环形链表的题差不多,这个麻烦的一点是需要你返回入环的第一个节点。

若我们继续用哈希表还是很简单,就是继续遍历链表,遇到的第一个重复的值即为入环的第一个节点。

这里我们看一下快慢指针的方法。

这里我们假设a为链表开头到入环第一个节点的距离。b为入环第一个节点到相遇点之间的距离,c为环剩下的距离。

我们让快慢指针都从链表开头部分开始移动,慢指针每次移一个距离,快指针每次移两个距离。

若相遇,则慢指针的移动距离为a+b,快指针移动的距离为a+n(b+c)+b。

快指针的移动距离是慢指针的2倍,由此可知a+n(b+c)+b=2(a+b)。

则a=(n-1)b+nc  ,  a=(n-1)(b+c)+c。

所以a的距离就等于n-1圈的距离加上c。

若可以相遇,则将链表的开头定义为ptr,ptr和slow每次分别移动一格,当ptr将a走完的时候,一定会与slow在入环的第一个节点相遇,此时返回ptr即可。

代码

class Solution {
public:ListNode *detectCycle(ListNode *head) {ListNode* fast=head,*slow=head;while(fast){slow=slow->next;if(fast->next==nullptr) return nullptr;fast=fast->next->next;//若相遇if(fast==slow){ListNode* ptr=head;while(ptr != slow){ptr=ptr->next;slow=slow->next;}return ptr;}}return nullptr;}
};

http://www.dtcms.com/a/493823.html

相关文章:

  • 农业网站设计房产网站模板
  • jsp网站开发登陆三河网站建设公司
  • 关于公司网站建设情况的汇报wordpress 渗透
  • 网站下载软件怎么安装如何才能看到国外的设计网站
  • 福彩网网站建设方案银川专业做网站
  • 企业网站规划书深圳营销型网站设计公司
  • 济南企业网站制作费用茶叶网站建设要求
  • 外国网页设计网站第三方网络营销平台
  • 濮阳网站建设网站网站是asp还是php
  • 网站管理规定青海住房和城乡建设部网站
  • 南宁横县网站建设推广wordpress的搭建
  • php网站开发背景介绍wordpress just
  • 合肥网站建设q479185700強网站会员系统方案
  • 宋家庄网站建设微网站建设及微信推广方案
  • 长尾关键词挖掘网站wordpress淘客 优惠券插件
  • 松山湖网站建设html网页代码完整代码
  • 建设自己的网站需要哪些步骤怎么做五合一网站
  • 傻瓜式网站开发软件成都网站建设 致尚
  • 国外免费域名网站wordpress怎么加速权限不够
  • 博罗网站设计公司校园网站建设详细的设计方案
  • 盐城专业做网站较好的公司包装设计公司浙江
  • 写作网站都有哪些网站策划及过程
  • 做用户名验证的网站服务器wordpress 带数据库吗
  • 如何编写一套网站模板三明网站设计
  • 跑步机网站建设思维导图免费建站平台排行榜
  • 印尼做网站的教学 中文wordpress archive插件
  • 广州市外贸网站建设珠海建网站的联系方式
  • 做任务领取礼品的网站ui特效网站
  • 如何制作h5做网站网站策划编辑如何做
  • 网站建设的商业阶段网站建设的平面设计