Дальше, если я не туплю, то каждый список в этой таблице - это несколько пользователей, которых надо склеить друг с другом.
Тогда можно просто в графе пользователей провести ребро из первого ко второму, из второго к третьему и т.д.
Получится граф линейного размера, каждая компонента связности которого - это ровно те юзеры, которых надо склеить