Інвертувати список

Задача

Написати функцію яка розміщує елементи списку у зворотньому порядку.

Рішення

Проходимо по всьому списку і для кожного елементу спочатку зберігаємо адресу наступного, потім міняємо в поточному елементі адресу наступного елемента на адресу попереднього (спочатку адресу попереднього встановлено в NULL). Потім зберігаємо поточний елемент як попередній, а наступний як поточний.

list_item* reverse_list(list_item *l) { list_item *prev = NULL; for (list_item *cur = l ; cur; ) { list_item *next = cur->next; cur->next = prev; prev = cur; cur = next; } return prev; }

Залишити відповідь

Зайти з допомогою: