Лучший способ добавить только один экземпляр числа? - PullRequest
0 голосов
/ 30 сентября 2018

Мне нужно создать программу на C ++, которая берет два связанных списка и создает новый связанный список узлов из обоих, но только с одним экземпляром каждого числа.Таким образом, результатом списка A = 1 -> 3 -> 1 -> 4 и списка B = 4 -> 5 -> 12 будет список C = 1 -> 3 -> 4 ->5 -> 12. Порядок чисел в новом связанном списке не имеет значения.У меня проблемы с отслеживанием каждого номера, чтобы я мог добавить только один экземпляр этого номера в свой новый связанный список.Единственное, что я могу подумать, - это перебирать узлы и проверять, есть ли уже число.Но есть ли лучший способ?

1 Ответ

0 голосов
/ 30 сентября 2018

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

...