The loop terminates when either of two pointers become None , or they cross each other ( second . next == first ) , or they become same ( first == second )
while ( first != None and second != None and first != second and second . next != first ) : NEW_LINE