日韩性视频-久久久蜜桃-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的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产精品久久久久久久久久久免费看 | 成年人黄色 | 国产男女无遮挡猛进猛出 | 91精品国产一区 | 看了下面会湿的视频 | 91成人一区二区三区 | 天天色av | 成人小视频免费在线观看 | 校园春色亚洲色图 | 日本不卡免费在线 | 别揉我奶头啊嗯一区二区 | 欧美在线色图 | 97高清国语自产拍 | 国产美女主播在线 | 亚洲精品综合在线 | 日韩网红少妇无码视频香港 | 好吊日免费视频 | 强行无套内谢大学生初次 | 俄罗斯精品一区二区三区 | 91成品视频| 91尤物在线 | 免费在线观看网址 | 无码人妻丰满熟妇区毛片18 | 亚洲女人初尝黑人巨大 | 日韩av在线观看免费 | 日日夜夜噜| av成人在线电影 | 999超碰| 国产一区二区在线播放 | www.色欧美 | 午夜久久影院 | 已婚少妇美妙人妻系列 | 日日躁夜夜躁 | 久久久91精品国产一区二区三区 | 免费看成人aa片无码视频羞羞网 | 激情网综合 | 毛片一级在线观看 | 国产午夜精品福利视频 | 久久久国产一区二区三区 | 青青青免费在线视频 | 久久亚洲AV成人无码国产人妖 | 精品成人一区二区三区久久精品 | 午夜精品久久久久久久 | 一区二区小说 | 日韩成人激情视频 | 悠悠色综合网 | 大胸美女啪啪 | 国产高潮在线 | 新超碰在线 | 欧美性受xxxxxx黑人xyx性爽 | 日本高清视频www | 日韩精品一区二区三区av | 可以免费看污视频的网站 | 男女黄网站 | 免费人成在线 | exo妈妈mv在线播放高清免费 | 无码一区二区三区在线观看 | 女同性做受全过程动图 | 重囗味sm一区二区三区 | 欧美区一区二区 | 91视频国产一区 | 国产一级特黄a高潮片 | 日韩欧美一区视频 | 久久久久亚洲日日精品 | 久草欧美 | 香港一级淫片免费放 | 日韩成人一级片 | 男人深夜网站 | 日韩成人av网站 | 污视频免费在线 | 五月激情婷婷网 | 国产精品人人人人 | 久久精品国产亚洲7777 | 性久久 | 厨房性猛交hd | 国产又粗又猛又黄又爽 | 亚洲国产成人va在线观看天堂 | av永久免费网站 | 亚洲第一精品在线观看 | 高清一区在线观看 | 黄页av | 爱爱视频网 | 青娱乐超碰| 自拍偷拍中文字幕 | 制服 丝袜 综合 日韩 欧美 | 国产精品午夜久久 | 日韩干 | 国产在线视频卡一卡二 | 福利一区三区 | 日本三级日本三级日本三级极 | 久久久噜噜噜www成人网 | 秋霞黄色片 | 欧美不卡 | 天天操欧美 | 一级淫片在线观看 | 色91| 中文字幕高清av | 亚洲无吗视频 | 老司机午夜在线 |