Я пытаюсь написать функцию, которая удаляет все нечетные элементы из данного связанного списка
а также возвращает адрес нового связанного списка удаленных нечетных элементов.
Я нахожу эту задачу довольно сложной, и я был бы счастлив, если бы вы могли помочь восстановить или улучшить мой код.
Вот что я сделал на сегодняшний день:
Что я уже пробовал:
typedef struct list{ int data; struct list* next; } List; List* removeOddValues(List **source){ List *curr = *source; List even = { .next = NULL }; List *e_curr = &even; List odd = { .next = NULL }; List *o_curr = &odd; while(curr){ List *next = curr->next; curr->next = NULL; if(curr->data % 2)// != 0, odd o_curr = o_curr->next = curr;//node add to last else//even e_curr = e_curr->next = curr; curr = next; } *source= even.next;//update source return odd.next; }
jeron1
Есть ли конкретный вопрос? Неужели код делает что-то такое, чего вы не ожидали?
Member 13194385
Как мне улучшить свой код или использовать меньше переменных?