Они оба полагаются на то, что указатели расположены на одинаковом расстоянии от перекрестка, а затем направляют их вперед одновременно, пока они не встретятся.
Ваш первый подход явно вычисляет, сколько раз вам придется перемещать указатель на длинном списке вперед, тогда как второй подход делает это неявно, заставляя оба указателя выполнять (m + n) шагов.
Мне нравится второй еще немного, потому что нет точки, в которой вы двигаете только один из указателей вперед, оба указателя перемещаются на каждой итерации.Первый может быть более обобщенным для списков 3+, потому что вам придется полностью проходить каждый список только один раз.