日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Linked List Cycle

發布時間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linked List Cycle 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Given a linked list, determine if it has a cycle in it.


Have you met this question in a real interview??YesExample

Given -21->10->4->5, tail connects to node index 1, return true

Challenge?

Follow up:
Can you solve it without using extra space?

來源:?http://www.lintcode.com/en/problem/linked-list-cycle/

分析


使用快慢指針


1234567891011121314151617181920212223242526272829/**?*?Definition?for?ListNode.?*?public?class?ListNode?{?*?????int?val;?*?????ListNode?next;?*?????ListNode(int?val)?{?*?????????this.val?=?val;?*?????????this.next?=?null;?*?????}?*?}?*/?public?class?Solution?{????/**?????*?@param?head:?The?first?node?of?linked?list.?????*?@return:?True?if?it?has?a?cycle,?or?false?????*/????public?boolean?hasCycle(ListNode?head)?{??????????//?write?your?code?here????????ListNode?slow?=?head,?fast?=?head;????????while(fast?!=?null?&&?fast.next?!=?null?&&?fast.next.next?!=?null){????????????slow?=?slow.next;????????????fast?=?fast.next.next;????????????if(slow?==?fast){????????????????return?true;????????????}????????}????????return?false;????}}

1.判斷單鏈表是否有環

  使用兩個slow, fast指針從頭開始掃描鏈表。指針slow 每次走1步,指針fast每次走2步。如果存在環,則指針slow、fast會相遇;如果不存在環,指針fast遇到NULL退出。

  就是所謂的追擊相遇問題: 相遇時,slow 并沒有走完一圈,fast領先slow一圈,第一次相遇在Pos處

    

2.求有環單鏈表的環長

?  在環上相遇后,記錄第一次相遇點為Pos,之后指針slow繼續每次走1步,fast每次走2步。在下次相遇的時候fast比slow正好又多走了一圈,也就是多走的距離等于環長。

  設從第一次相遇到第二次相遇,設slow走了len步,則fast走了2*len步,相遇時多走了一圈:?

    環長=2*len-len。?

3.求有環單鏈表的環連接點位置

  第一次碰撞點Pos到連接點Join的距離 = 頭指針到連接點Join的距離,因此,分別從第一次碰撞點Pos、頭指針head開始走,相遇的那個點就是連接點。

?    

  在環上相遇后,記錄第一次相遇點為Pos,連接點為Join,假設頭結點到連接點的長度為LenA,連接點到第一次相遇點的長度為x,環長為R

    第一次相遇時,slow走的長度 S =?LenA?+?x;

    第一次相遇時,fast走的長度 2S =?LenA?+ n*R?+?x;

    所以可以知道,LenA?+?x =??n*R;  LenA = n*R -x; ?亦可以看成 LenA = m*R + y

4.求有環單鏈表的鏈表長

?  上述2中求出了環的長度;3中求出了連接點的位置,就可以求出頭結點到連接點的長度。兩者相加就是鏈表的長度。

來源:?http://www.cnblogs.com/xudong-bupt/p/3667729.html



null

轉載于:https://www.cnblogs.com/zhxshseu/p/f8973e488b1e794e4312d1915ba90381.html

總結

以上是生活随笔為你收集整理的Linked List Cycle的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕在线网址 | 亚洲永久免费视频 | 久久精品电影网 | 欧美另类69 | 日本激情在线 | 在线中文av| 91在线综合 | 一区二区国产视频 | 亚洲色图36p| 又黄又爽的网站 | 福利视频在线播放 | 久久精品日韩无码 | 美女狂揉羞羞的视频 | 国产视频一区三区 | 免费看的黄色录像 | aa级黄色片 | 欧美日韩生活片 | 国产欧美一区二区在线观看 | 毛片黄片免费看 | 日本va欧美va欧美va精品 | 日韩精品一区二区在线视频 | 国产精选毛片 | 欧美久久久久久 | 18岁成年人网站 | 日本色网址 | 久久影视一区二区 | 国产91久久婷婷一区二区 | 丰满秘书被猛烈进入高清播放在 | 久久久视频在线 | 99精品乱码国产在线观看 | 亚洲高h | 色播在线观看 | 日本在线三级 | 成人中文字幕+乱码+中文字幕 | 欧美人与禽猛交乱配视频 | 国产真实自拍 | 老妇女玩小男生毛片 | 禁久久精品乱码 | 欧洲在线一区 | 艹久久| 精品一区在线观看视频 | 三级黄色免费网站 | 香蕉视频在线观看黄 | 色综合中文字幕 | 成人做爰视频www网站小优视频 | 亚洲高清福利 | 亚洲熟妇一区二区 | 伊人久久一区 | 国产成人在线免费观看视频 | 欧美日韩成人免费观看 | 九九热免费 | 国产制服丝袜 | 日产亚洲一区二区三区 | 色伊人| 亚洲xx站| 青娱乐极品视频在线 | 黄色片99| 国产在线资源 | 亚洲一区二区三区在线看 | 鲁片一区二区三区 | 337p亚洲欧洲色噜噜噜 | 91网站免费视频 | 国产鲁鲁视频在线观看特色 | 中文字幕第一页av | 免费av网址大全 | 亚洲欧美黄 | 97视频网站 | 欧美1区 | 国产精品久久久久久久久免费相片 | 国产精品第5页 | 七七久久| 波多野结衣丝袜 | 色噜噜狠狠一区二区三区 | 久青草国产在线 | 成人av手机在线观看 | 先锋影音av资源网 | 91精品综合| 黄色网在线播放 | 99在线观看 | 欧美成人精品欧美一级乱黄 | 麻豆国产精品 | 日韩av网站在线播放 | 伊人久操视频 | 国产乱子伦一区二区 | www.色亚洲| 成人一级影视 | 毛片网页 | 欧美午夜精品久久久久久人妖 | 日韩欧美在线视频播放 | 在线看三级 | 青青视频免费观看 | 一级特黄欧美 | 国产精品一区二区自拍 | 亚洲v欧美v另类v综合v日韩v | 香蕉手机网 | 欧美肥妇bwbwbwbxx | 欧美18一19性内谢 | 亚洲综合图片一区 | 大j8黑人w巨大888a片 |