Hm, nice trick! I'll have to remember that one! ^^
I'm just an old bag full of (old) tricks ;-) You have to take care of the details if
you want to make use of this trick, e.g. if you let the 'fast' pointer run first,
don't run the second pointer if the first one falls of the list in one of its two jumps.
That way you either end up at the middle element (with the slow pointer) when
there are an odd number of elements in the list, or you end up at element n/2
(integer division) when there are an even number n elements in the list.
kind regards,
Jos