Если вы хотите сохранить дубликаты, добавьте оба в связанный список c
.Прямо сейчас вы добавляете только один (например, a
или b
) в связанный список.
Поэтому измените свой код так:
temp_a_next = a->next;
temp_b_next = b->next;
if(c == NULL)
{
c = a;
c->next = b;
c = b;
}
else
{
c->next = a;
c = a;
c->next = b;
c = b;
}
a = temp_a_next;
b = temp_b_next;
Еще одинпримечание: конечный заголовок отсортированного списка с дубликатами будет иметь начальную точку в a
, так как к концу этого алгоритма c
будет указывать на конец списка, и этот алгоритм фактически изменяет указателиузлы a
и b
(т. е. c
не является новым связанным списком с новыми узлами).