using System;
using System.Collections.Generic;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
Random rnd = new Random(123);
LinkedList<int> list = new LinkedList<int>();
for (int i = 0; i < 25; i++)
{
list.AddLast(rnd.Next(0, 5));
}
Console.WriteLine("До:");
foreach (var i in list)
{
Console.WriteLine(i);
}
Console.WriteLine();
LinkedListNode<int> node;
node = list.First;
while (node != null)
{
int prev = -9999;
int next = -99;
if (node.Previous != null)
{
prev = node.Previous.Value;
}
if (node.Next != null)
{
next = node.Next.Value;
}
var nextNode = node.Next;
if (node.Value == prev || prev == next || node.Value == next)
{
Console.WriteLine("DELETE: Prev:{0} ,Curr:{1}, Next:{2}", prev, node.Value, next);
//Удаление элемента
list.Remove(node);
}
node = nextNode;
}
Console.WriteLine();
Console.WriteLine("После:");
foreach (var i in list)
{
Console.WriteLine(i);
}
Console.ReadKey();
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCgpuYW1lc3BhY2UgQ29uc29sZUFwcGxpY2F0aW9uMwp7CiAgICBjbGFzcyBQcm9ncmFtCiAgICB7CiAgICAgICAgc3RhdGljIHZvaWQgTWFpbihzdHJpbmdbXSBhcmdzKQogICAgICAgIHsKICAgICAgICAgICAgUmFuZG9tIHJuZCA9IG5ldyBSYW5kb20oMTIzKTsKCiAgICAgICAgICAgIExpbmtlZExpc3Q8aW50PiBsaXN0ID0gbmV3IExpbmtlZExpc3Q8aW50PigpOwogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDI1OyBpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGxpc3QuQWRkTGFzdChybmQuTmV4dCgwLCA1KSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoItCU0L46Iik7CiAgICAgICAgICAgIGZvcmVhY2ggKHZhciBpIGluIGxpc3QpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKGkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCk7CiAgICAgICAgICAgIExpbmtlZExpc3ROb2RlPGludD4gbm9kZTsKICAgICAgICAgICAgbm9kZSA9IGxpc3QuRmlyc3Q7CiAgICAgICAgICAgIHdoaWxlIChub2RlICE9IG51bGwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGludCBwcmV2ID0gLTk5OTk7CiAgICAgICAgICAgICAgICBpbnQgbmV4dCA9IC05OTsKICAgICAgICAgICAgICAgIGlmIChub2RlLlByZXZpb3VzICE9IG51bGwpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcHJldiA9IG5vZGUuUHJldmlvdXMuVmFsdWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAobm9kZS5OZXh0ICE9IG51bGwpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCA9IG5vZGUuTmV4dC5WYWx1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBuZXh0Tm9kZSA9IG5vZGUuTmV4dDsKICAgICAgICAgICAgICAgIGlmIChub2RlLlZhbHVlID09IHByZXYgfHwgcHJldiA9PSBuZXh0IHx8IG5vZGUuVmFsdWUgPT0gbmV4dCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiREVMRVRFOiBQcmV2OnswfSAsQ3Vycjp7MX0sIE5leHQ6ezJ9IiwgcHJldiwgbm9kZS5WYWx1ZSwgbmV4dCk7CiAgICAgICAgICAgICAgICAgICAgLy/Qo9C00LDQu9C10L3QuNC1INGN0LvQtdC80LXQvdGC0LAKICAgICAgICAgICAgICAgICAgICBsaXN0LlJlbW92ZShub2RlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIG5vZGUgPSBuZXh0Tm9kZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoKTsKCiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCLQn9C+0YHQu9C1OiIpOwoKICAgICAgICAgICAgZm9yZWFjaCAodmFyIGkgaW4gbGlzdCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoaSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIENvbnNvbGUuUmVhZEtleSgpOwogICAgICAgIH0KICAgIH0KfQ==
До:
4
3
1
4
4
0
0
2
4
3
0
4
2
4
0
0
1
0
0
1
3
4
2
3
1
DELETE: Prev:1 ,Curr:4, Next:4
DELETE: Prev:4 ,Curr:0, Next:0
DELETE: Prev:4 ,Curr:2, Next:4
DELETE: Prev:4 ,Curr:4, Next:0
DELETE: Prev:4 ,Curr:0, Next:0
DELETE: Prev:0 ,Curr:1, Next:0
DELETE: Prev:0 ,Curr:0, Next:0
DELETE: Prev:0 ,Curr:0, Next:1
После:
4
3
1
4
0
2
4
3
0
4
0
1
3
4
2
3
1