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

揭阳企业网站建设公司企业seo排名外包

揭阳企业网站建设公司,企业seo排名外包,郑州的兼职网站建设,大连seo题目 思路 这个题其实与之前环形链表的题差不多,这个麻烦的一点是需要你返回入环的第一个节点。 若我们继续用哈希表还是很简单,就是继续遍历链表,遇到的第一个重复的值即为入环的第一个节点。 这里我们看一下快慢指针的方法。 这里我们假…

题目

思路

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

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

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

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

相关文章:

  • 网站建设服务费发票营销最好的方法
  • 做网站需要学哪些语言网络营销计划书怎么写
  • 可信赖的大良网站建设淘宝宝贝排名查询
  • 友点企业网站管理系统模板互联网推广是什么
  • 做网站设计的公司名字友情链接格式
  • 小米盒子做网站百度搜索排名怎么靠前
  • 做淘宝需要知道什么网站吗福建网站建设制作
  • 建设部总监继续教育网站seo渠道
  • 拉萨工商做年检网站政府免费培训面点班
  • 做网站杭州傲视信息最近新闻内容
  • 做企业网站的公司有哪些申京效率值联盟第一
  • 网站网站建设费进什么科目成都seo论坛
  • 做旅游网站多少钱seo sem论坛
  • 建设部国家标准网站宁波核心关键词seo收费
  • 做门户网站怎么赚钱怎么在百度上注册店铺
  • 做网站需要平台长沙做引流推广的公司
  • 网站备案负责人一定要法人网络舆情信息
  • 自适应网站建设特点百度广告推广收费标准
  • 从化免费网站建设微信营销平台哪个好
  • 平谷做网站今日国际新闻最新消息
  • 网站建站基础北海seo快速排名
  • 做游戏网站的分析搜索引擎营销推广
  • 乌鲁木齐市城乡建设局网站店铺推广软文案例
  • 西安网站建设价格热线大连网络推广公司哪家好
  • 如何制作网站app网络营销推广工作内容
  • 做网站虚拟主机和云服务器深圳广告公司排名
  • 幼儿园网站的建设需求分析百度公司图片
  • wordpress wp_post深圳seo推广培训
  • 个人做外包网站多少钱成都seo学徒
  • dw做网站的导航栏优化大师优化项目有