«Объединить» здесь вводит в заблуждение, так как вы можете объединять только отсортированные списки, а ваши не сортируются.
Вам нужно сортировать, а не объединять.
Поместите указатели на узлы в вектор. используйте std :: sort для вектора и передайте функтор сравнения, который приводит каждый указатель к size_t (я думаю) и сравнивает полученные числа.
Затем вы можете переставить связанные списки в соответствии с результирующим порядком в векторе.