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

中国免费素材网站深圳精准网络营销推广

中国免费素材网站,深圳精准网络营销推广,精通网站建设,做外贸网站 怎么收钱这道题已经刷过3回了,还好还记得思路,直接一遍过,说下主要的思路。 首先要判断一个链表是否有环,我们就需要定义快慢指针进行判断,在起始阶段,快慢指针都指向链表的头节点,然后进行循环&#xf…


这道题已经刷过3回了,还好还记得思路,直接一遍过,说下主要的思路。
首先要判断一个链表是否有环,我们就需要定义快慢指针进行判断,在起始阶段,快慢指针都指向链表的头节点,然后进行循环,当快指针fastfast -> next不为空时循环继续,若循环退出,就说明链表中没有环,直接返回nullptr,若在循环内出现了快慢指针相遇的情况,则说明链表内有环,我们进行下一步分析,如下图所示。

假设从链表头节点到环的入口的距离为x,从入口到快慢指针相遇处(沿前进方向)的距离为y,从快慢指针相遇处到环的入口(沿前进方向)的距离为z,当快慢指针相遇时,慢指针在环内一定没走完一圈(详细证明可以看我的这篇博客),则快慢指针的路程关系为2倍的关系,根据上面的性质我们可以得到一个原始的等式,然后经过一步步化简可以得到划红线的结果,其重要性质已经用红字写出,根据上面的性质,我们可以新定义一个慢指针result,从链表头节点出发,每次只移动一个节点,而慢指针slow同时继续向前进,当slowresult相遇时,slow走的路程为z+(n - 1)(y + z)(n - 1圈+z),而result走了x,当二者相遇时,相遇处就是入口,直接返回即可。

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *detectCycle(ListNode *head) {ListNode* fast = head;ListNode* slow = head;while(fast && fast -> next){fast = fast -> next -> next;  //快指针走两步slow = slow -> next;    //慢指针走一步if(fast == slow){  //链表有环且在环内相遇ListNode* result = head;while(result != slow){result = result -> next;slow = slow -> next;}return result;}}return nullptr;   //链表无环}
};
http://www.dtcms.com/wzjs/110480.html

相关文章:

  • 多语种网站后台北京优化互联网公司
  • 外贸b2b网站建设公司app推广方案怎么写
  • wordpress防盗图seo sem优化
  • 网站被k的表现线上推广平台都有哪些
  • 承接做网站360线上推广
  • 网站开发与设计需要哪些技术百度代理推广
  • 流量网站制作谷歌chrome浏览器下载
  • 政府网站建设如何做免费申请网站com域名
  • 哪个网站可以做微信头图seo点击
  • 网站开发软件公司关键词排名点击软件工具
  • 网站语言切换前端可以做么今日最新新闻重大事件
  • 免费企业自助建站信息发布网关键词林俊杰mp3在线听
  • 常州 招网站开发自助建站的优势
  • 政务网站建设目标河北seo
  • 展厅设计说明200字seo外包推广
  • 成都零起飞网站建设互联网医疗的营销策略
  • 做交友网站需要什么代写软文公司
  • 版纳网站建设百度排名软件
  • wordpress不显示内容你福州seo博客
  • 服装市场网站建设百度关键词排名销售
  • 泰安公司网站建设小红书推广
  • 如何找网站推广域名注册需要什么条件
  • 做报废厂房网站怎么做超级软文网
  • 办公室装修费怎么做账重庆网络seo公司
  • 注册去美国做住家保姆的网站怎么样推广自己的网站
  • 做投票网站教程网站数据统计
  • 做犯法任务的网站企业整站seo
  • 官方网站套餐网上找客户有什么渠道
  • 做dj音乐网站百度做广告怎么做
  • 做公益网站的原因网上营销方式和方法