using System; using System.Collections.Generic; using System.IO; namespace ConsoleApplication { class Program { static void Main(string[] args) { Random rnd = new Random(123); LinkedList list = new LinkedList(); for (int i = 0; i < 25; i++) { list.AddLast(rnd.Next(0,5)); } //Берем итератор var iter = list.GetEnumerator(); Console.WriteLine("До:"); foreach (var i in list) { Console.WriteLine(i); } Console.WriteLine(); var el = list.First; while (iter.MoveNext()) { int prev = -9999; int next = -99; if (el.Previous != null) { prev = el.Previous.Value; } if (el.Next != null) { next = el.Next.Value; } if (el.Value == prev || prev == next || el.Value == next) { Console.WriteLine("DELETE: Prev:{0} ,Curr:{1}, Next:{2}", prev, el.Value, next); //Удаление элемента list.Remove(el); //Получение итератора нового списка iter = list.GetEnumerator(); el = list.First; } if (list.Count > 0 && el.Next != null) { el = el.Next; } } Console.WriteLine(); Console.WriteLine("После:"); foreach (var i in list) { Console.WriteLine(i); } Console.ReadKey(); } } }