Im пытается написать функцию, которая принимает случайный список и сортирует его (в c), чтобы четные числа были первыми, делая это, не создавая второй список. То, что я пытаюсь сделать, - это перемещение вновь найденного четного числа в начало списка (что делает предыдущую главу элементом seconnd). Брус понять, почему мои указатели получить перепутано, хотя -сортировка четных и нечетных чисел в связанном списке
typedef struct node node;
typedef struct node {
int data;
node *next;
};
void sortlist(node *head) {
if (head == NULL) {
printf("Empty list \n");
}
node *index1 = head->next;
node *oldhead;
if (index1 == NULL) {
return;
}
while (index1 != NULL) {
if (index1->data % 2 == 0) {
oldhead = head;
head = index1;
head->next = oldhead;
}
index1 = index1->next;
}
}
где вы удаляете элемент четного списка, прежде чем добавлять их в голову? –
@WasiAhmad где? – Hellowuvrld
В секции цикла while. Я добавил предварительное решение, пожалуйста, посмотрите. –