Либо их алгоритм, жестко под их задачу с чатиком последовательных сообщений написан, либо у них есть алгоритм расчёта последовательности отображения. Просто алгоритмы на деревьях стары как мир, так же все ноды можно пронумеровать тем или иным подходом... Зачем это вытягивание в лист?