1. Keep 2 pointers. Say p and q.2. Make p & q both point the head of the list. 3. Move p by one node and q by 2 nodes.4. Repeat step 3 until a. Either q points to NULL. In this case there is no loop. b. Or Both p & q meet each other again. In this case there is loop.

This linked list is looping from 8 back to 5. There are 4 nodes before the loop and 4 nodes inside. In this linked list and in the algo as explained by shrinidhi the loop is detected as soon as the pointer p moves to node5 for the first time. And there cannot be any other best scenario possible...Hence the best case time complexity is node k+1 where k is the number of nodes outside the loop.

Yeah I agree with Guru... O(k+1) is the best case time taken if there exist a loop.However if there aren't any loop in the linked list it will be found in just n/2 steps, where n is the number of nodes in the list.