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

php网站qq互联热点新闻

php网站qq互联,热点新闻,烟台网络推广引流,物流网站做那个好1.链表的带环问题 上图就是一个典型的带环链表 1.1如何判读链表是否带环? 最常见的方法就是利用快慢指针,快指针追加慢指针,当二者相等的时候即可判断链表带环 其实现的代码如下: bool hasCycle(struct ListNode*head) { s…

1.链表的带环问题

       

上图就是一个典型的带环链表

   1.1如何判读链表是否带环? 

   最常见的方法就是利用快慢指针,快指针追加慢指针,当二者相等的时候即可判断链表带环

其实现的代码如下:

bool hasCycle(struct ListNode*head)

{
     struct ListNode* slow = head,*fast = head;

     while(fast && fast->next)

    {

            slow = slow->next;

            fast = fast ->next->next;

            if(slow == fast)

                return true;

    }

           return false;

}

 1.2 为什么快慢指针一定会相遇 

      1.2.1 两指针每走一步其距离缩小1

    假设slow进环的时候fast与其的距离为N,此时每当slow走一步,fast与slow的距离都会缩小1,最后缩小到0,从而两指针相遇。

      1.2.2 两指针每走一步其距离缩小2

初步证明:

  1.N是偶数,第一轮就追上。
       2.N是奇数,第一轮就会错过,距离变成C-1(C为环的长度)。
           a.如果C-1是偶数,下一轮就追上了
           b.如果C-1是奇数,那么就永远追不上

深度证明:

     假设slow进环时,fast跟slow的距离为N

     slow走的距离是:L

     fast走的距离:L+x*C+C-N

     slow进环时,假设fast已经在环里转了x圈

     如果fast走的距离是slow的3倍

     3*L = L+x*C + C-N

     2*L = (x+1)*C-N

    偶数 = (x+1)*偶数-奇数      所以只有两种情况:  N是奇数,C也是奇数

                                                                                   N是偶数时,C也是偶数

    由此可以得出N是奇数且C是偶数不能同时存在,在初步证明中的永远追不上不成立

  把两种情况代入初步证明中可以得出结论

    结论:一定能追上

         N偶数第一轮就追上了

         N是奇数第一轮追不上,C-1是偶数第二轮就追上

 1.3 找环的入口点

    1.3.1 方法一       

一个指针从头结点开始前进,而slow指针在与fast相遇点开始前进,当head指针和slow指针相遇的时候,该点为环的入口点。

证明如下: 

相遇时:

slow走的路程:L + N

fast走的路程:L+x*C+N

fast走的路程是slow的2倍:化简后的公式为:L =x*C-N ->  L = (x-1)*C + C - N

以下为代码的实现:

struct ListNode*meet = slow;

while(meet != head)

{

     meet = meet ->next;

     head = head ->next;

}

      return meet;

1.3.2 方法二 

 

 newhead = meet->next;

  newhead =NULL;

通过上述两个操作,让找环入口点转化为找两个链表的交点问题

http://www.yayakq.cn/news/85554/

相关文章:

  • 防蚊手环移动网站建设织梦 手机网站
  • 网站底部的备案号wordpress如何抓取
  • 做网站的基本知识网站建设有哪些工作
  • 企业网站必须备案吗网页浏览器软件有哪些
  • 深圳大眼睛网站建设推广自身网站
  • 汽车销售网站模板 cmswordpress文章添加seo标题
  • 西安网站建设多钱重庆seo搜索引擎优化优与略
  • 网站伪静态设置网盟推广与信息流
  • 那个网站做外贸河南省网站建设
  • 网站为什么改版中国建筑招聘信息
  • 亿恩 网站备案广告设计需要什么学历
  • 站群管理系统cms家用电脑网站建设
  • 徐州微信网站建设软件下载网站 知乎
  • 网站建设 工作方案济铁工程建设集团公司官方网站
  • 郑州营销网站托管公司哪家好汉中北京网站建设
  • 常州免费网站建站模板制作表白网页
  • 合肥网站建设合肥网站制作wordpress 数据库搜索功能
  • 如何做自己的网站链接开发一个定制的网站
  • 影楼免费网站建设网站建设 排名下拉
  • 做网站多少钱一个谷歌seo优化推广
  • 河南建设网站官网汕头设计网站建设
  • html5网站开发环境品牌网站开发策划书
  • 云南省人防工程建设网站惠州网站建设l优选蓝速科技
  • 手机网站打不开被拦截怎么办怎么做租房网站
  • 网站制作公司报价如何做网站知乎
  • 杏坛网站建设网站建设套餐怎么样
  • 网站用户粘性儿童网站欣赏
  • 怎样在网站上做办公家具快速构建网站
  • 昭阳区建设局网站太原网站关键词推广
  • 深圳广告公司珠海网站建设及优化