作者adrianshum (Alien)
看板Programming
標題Re: [請益] linked list裡如何找cycle?
時間Mon Jan 25 14:44:45 2010
※ 引述《pikahacker (喵)》之銘言:
: ※ [本文轉錄自 Prob_Solve 看板]
: 作者: pikahacker (喵) 看板: Prob_Solve
: 標題: [請益] linked list裡如何找cycle?
: 時間: Mon Jan 25 13:06:55 2010
: 如果有人給妳一個linked list
: 有辦法在O(N)時間內,得知linked list中有沒有cycle?
初出來工作的時候, 有些老大出了這問題
當初沒有說用O(N) 的, 我想了一個麻煩的方法.
後來他說其實有一個 O(N) 的方法, 我再想一想
就想到了
其實比較像智力問題. 想自己想的話先不要往下看
防雷
兩支 ptr 指著 head, ptr A 每次往前移2格, ptr B 每次
移1格.
要是 ptr A reach 到 null 即是 non-cyclic
要是有一刻 ptr B 等如 A, 就是 cyclic
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.155.236.82
推 yauhh:水 61.231.66.54 01/25 19:27
推 yoco315:跟 rho method factorization 一樣耶 O_O118.160.115.155 01/25 20:20
推 pikahacker:好美的解法 76.24.28.22 01/25 22:21
推 akasan:還是這個解法最優美118.168.186.244 01/25 23:57
推 bobju:要證明是O(n)得用到數論. 58.115.151.184 01/26 14:58
推 cutecpu:推! 60.248.4.114 01/26 16:53
→ MOONRAKER:贊 59.120.168.228 01/27 21:59
推 lflin:如果 cycle number 是個質數...203.160.254.105 02/04 04:58
→ lflin: 喔 沒事 :p203.160.254.105 02/04 05:24
推 DBoyX:好像賽車... 122.121.20.45 03/04 15:52