Задача на C++, двусвязный список
Нужна помощь в решении задачи на динамические структуры данных. Создать двусвязный список, содержащий целые числа. Удалить лишние элементы так, чтобы каждый элемент был не меньше среднего арифметического всех элементов, следующих за ним. Например, для списка 5 2 9 1 3 7 1 2 9, результат должен быть 5 9 7 9.
Помогите пожалуйста!