Difference between revisions of "TADM2E 3.27"
From Algorithm Wiki
(Recovering wiki) |
|
(One intermediate revision by one other user not shown) | |
(No difference)
|
Latest revision as of 15:53, 23 July 2020
1) Take two pointers Fast and Slow (Slow jumps one step at a time while Fast two step) 2) While (Fast != NULL) if(Fast == Slow) return true; else fast = fast->next->next slow = slow->next 3) return false; After detecting loop stop one pointer and increment other pointer by 1 step untill Loop if (fast == slow) break; else slow++ LoopLength++ EndLoop You can find out loop start position also. Once you have LoopLenght. 1. Fast = Slow = Start 2. Fast += LoopLenght 3. Loop If Fast != Slow Fast++; Slow++ EndLoop 4. Fast and Slow Both are pointing to the start of loop position. Now you can break the Loop in link list.
--Max 06:18, 25 June 2010 (EDT)