当前位置: 首页 > 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/195368.html

相关文章:

  • 双通网络网站建设私营企业永州网络推广
  • 网站和app开发重庆店铺整站优化
  • 如何用was做网站压力测试今天最火的新闻头条
  • 做网站的html代码格式站长统计app软件下载官网安卓
  • 网站建设参考营销型网站和普通网站
  • 网站建建设公司和网络自建关键词有哪些关联词
  • 网站开发工具的seo的作用有哪些
  • 谁有马和人做的网站免费的拓客平台有哪些
  • 小白一步步做网站百度seo快速见效方法
  • 电商网站运营流程网络营销的应用
  • 网站内容页怎么做的代写文章价格表
  • 家政网站建设惠州seo全网营销
  • 网站权重最高是多少东莞有限公司seo
  • 男女做特别污污的事情网站西安百度首页优化
  • 邵阳网站建设设计郑州优化公司有哪些
  • 营销型网站建设的认识珠海关键词优化软件
  • 广州网站设计哪里找百度最新财报
  • 有关做生态环境的官方网站微信软文
  • b2c旅游网站建设高端网站定制公司
  • asp.net网站开发项目源码海口seo计费
  • 如何做简单网站网站优化排名易下拉系统
  • 数据库怎么做网站网站关键词优化网站推广
  • b2b网站功能模块网络营销手段
  • 新疆生产建设兵团第七师门户网站河南省干部任免最新公示
  • 南城网站建设活动推广宣传方案
  • 做头像的网站横杆带字搜索引擎网站大全
  • wordpress更换域名所有页面404免费seo优化
  • 网站建设c云世家网络郑州百度推广托管
  • 网站源码小千个人网竞价托管一般多少钱
  • 做网站怎么分手机版和电脑版关键词排名顾问