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

网站建设问题清单永久免费自助建站软件

网站建设问题清单,永久免费自助建站软件,为什么网站开发要用架构,建筑工程公司转让题目 思路 这个题其实与之前环形链表的题差不多,这个麻烦的一点是需要你返回入环的第一个节点。 若我们继续用哈希表还是很简单,就是继续遍历链表,遇到的第一个重复的值即为入环的第一个节点。 这里我们看一下快慢指针的方法。 这里我们假…

题目

思路

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

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

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

这里我们假设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/wzjs/79906.html

相关文章:

  • 电商sku是什么意思搜索广告优化
  • 一个网站费用百度经验发布平台
  • 网站建设费怎么做账新浪网今日乌鲁木齐新闻
  • 济南百度推广seo厦门seo优化公司
  • 电子公司网站源码百度全网营销
  • 北京网站 百度快照目前小说网站排名
  • 深圳网站建设公司团队seo关键词排名优化怎样收费
  • 如何做网站的基础2345网址导航官网官方电脑版下载
  • 开个网站需要什么条件app推广联盟
  • 成都微信网站建设多少怎样推广自己的产品
  • 丹徒网站建设平台百度竞价排名官网
  • 南通通州建设工程质量监督网站视频号链接怎么获取
  • 做算法题的网站怎么做好seo内容优化
  • 网站建设收费标准用今日头条导入自己网站外链
  • 企业为什么要建网站深圳刚刚突然宣布
  • 企业咨询培训关键词优化的价格查询
  • 中山外贸出口网站建设多少钱哪里有深圳网络营销平台
  • 比百度更好的网站seo推广代运营
  • 销售网站开发业务aso优化软件
  • wordpress 主机服务主题seo优化工作内容做什么
  • 青岛企业网站制作公司google下载app
  • 益阳一站式网站建设公司优化大师
  • 有什么网站可以做简历百度推广后台登陆首页
  • 网站开发所要达到的目标seo交流群
  • 技术支持 石家庄网站建设软件推广的渠道是哪里找的
  • 微信与与网站建设排名点击工具
  • 广州网站开发公司淘宝流量助手平台
  • 手机公司网站建设关键词排名推广怎么做
  • 业务员自己掏钱做网站可以吗竞价关键词优化软件
  • 一个专门做特卖的网站网站seo具体怎么做?