Difference between revisions of "TADM2E 3.27"

From Algorithm Wiki
Jump to: navigation, search
(Recovering wiki)
(Blanked the page)
Line 1: Line 1:
<pre>
 
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.
 
</pre>
 
--[[User:Max|Max]] 06:18, 25 June 2010 (EDT)
 

Revision as of 00:20, 20 July 2020