DIR Return Create A Forum - Home
---------------------------------------------------------
techsuns
HTML https://techsuns.createaforum.com
---------------------------------------------------------
*****************************************************
DIR Return to: Puzzles && Algorithms
*****************************************************
#Post#: 10--------------------------------------------------
Linked List
By: kranthipls Date: August 9, 2012, 10:18 am
---------------------------------------------------------
Given a linked list how do you find if the linked list consists
of a loop
Loop: Loop means the last node is connected back again to one of
the nodes in the whole list.
#Post#: 11--------------------------------------------------
Re: Linked List
By: dinesh Date: August 12, 2012, 1:05 am
---------------------------------------------------------
Use two pointers: hare and tortoise pointers. If there is a
loop, ultimately they will point to the same node.
Can anyone throw some light on the guarantee of convergence and
how long it will take to converge?
What is the complexity of this algorithm?
#Post#: 277--------------------------------------------------
Re: Linked List
By: kranthipls Date: November 30, 2012, 2:12 am
---------------------------------------------------------
@Dinesh since no one has answered could you please answer the
above question...........
#Post#: 278--------------------------------------------------
Re: Linked List
By: dinesh Date: November 30, 2012, 3:12 am
---------------------------------------------------------
The algorithm is called Floyd's Cycle-Finding Algorithm aka The
Tortoise and the Hare Algorithm. It has O(n) complexity. (also
called Turtle and Rabbit algorithm)
int *head = list.GetHead();
if (head != null) {
int *fastPtr = head;
int *slowPtr = head;
bool isCircular = true;
do
{
if (fastPtr->Next == null || fastPtr->Next->Next ==
null) //List end found
{
isCircular = false;
break;
}
fastPtr = fastPtr->Next->Next;
slowPtr = slowPtr->Next;
} while (fastPtr != slowPtr);
//Do whatever you want with the 'isCircular' flag here
}
HTML http://en.wikipedia.org/wiki/Floyd%27s_cycle-finding_algorithm#Tortoise_and_hare
#Post#: 285--------------------------------------------------
Re: Linked List
By: kranthipls Date: November 30, 2012, 9:56 am
---------------------------------------------------------
@Dinesh you just gave the complexity.......What about the
convergence
*****************************************************