Вилучити елемент зі списку за вказівником на нього

Задача

Написати функцію яка приймає вказівник на елемент і вилучає цей елемент зі списку.

Рішення

Скопіювати значення з наступного елемента у поточний, модифікувати вказівник на наступний елемент і видалити наступний елемент.

    1. void RemoveItem(list* item)
    2. {
    3.   if (!item ||!item->next) return;
    4.   list *next = item->next;
    5.   item->data = next->data;
    6.   item->next = next->next;
    7. }

 

* This source code was highlighted with Source Code Highlighter.

Зауваження

Алгоритм неможливо реалізувати для вказівника на останній елемент. В цьому випадку такий елемент можна позначити якимось чином щоб сигналізувати що його видалено.

Dead Man (1995)

Фільм у своєму темпі, який він швидко починає диктувати глядачеві, говорить про те що всі ми з народження мерці які ненадовго випали з іншого світу і повертаємося в нього, кожен своїм шляхом.

Так само подорож головного героя з такою простою і зрозумілою метою на самому початку поступово перетворюється у плутанину і питання “чи живий я”, “чи живі всі люди навколо”, “чи не є це вже царство мертвих”?

http://www.imdb.com/title/tt0112817/