Algorithm to find if loop exist in LinkedList

Algo1: Take every node address of original LinkedList and add to visited LinkedList if it is not exist.
             else print loop is found.
Time Complexity: O(n^2)
Space Complexity: O(n)

Algorithm 2:
1. Modify every node of the LL by inserting an extra field which is initially set to 0.
2. Visit every node of LL and verify
    flag is 0 or not
         if 0 , then make 1
         else print loop exist
Time Complexity: O(n)
Space Complexity: O(n)

Algorithm 3:
1. Take 2-pointer p and q where p=q=list
2. Increase p by 1 and increase q by 2
3. if(p==q), then print loop found
   else goto step 2
Time Complexity: O(n)
Space Complexity: O(1)

Implementation in C:


Comments

Popular posts from this blog

Three mislabeled Jar

Difference between Macro And function