UniLecs #Task. Merge Two Sorted Lists
Задача: Напишите алгоритм объединения двух отсортированных связанных списков и верните указатель на новый список.
Входные данные: l1, l2 — корневые узлы списков
Вывод: l3 — результирующий список
Пример: 1->2->4, 1->3->4
Output: 1->1->2->3->4->4
Разбор
В данном алгоритме нет никакой магии, обычная логика.
Создаем два указателя для списков, а также создаем новый пустой список и указатель к нему.
Запускаем цикл покак оба указателя не равны null значению.
В цикле сравниваем значения узлов и присваиваем соот.значение новому списку, не забываем двигать указатели.
После окончания цикла, проверяем оба указателя: если какой то из них не равен null значению, значит в нем еще остались элементы, ктр присваиваем новому списку. Такая ситуация возникнет в том случае, если входные списки отличаются по длине.
Детали смотрите в реализации ниже.
Реализация
https://gist.github.com/unilecs/6c91654461ac3fbca94fed65560beeae