Thanks a lot, but I' m still figuring out why 'fast' wouldn't jump over 'head' and go to the next lap if it's moving by 2 nodes versus head's 1 node. How come it's not happening?
1:50 With every iteration, the distance between the fast and slow pointer gets reduced by exactly 1 node, never more. So no matter what the initial distance between them is (let's say it's x), the distance between them will eventually converge like this: x --> x-1 --> x-2 --> ... --> 2 --> 1 --> 0, at which point they must meet.