Пример #1
0
        private static void ReverseLinkedList(DoubleLinkedNode head)
        {
            DoubleLinkedNode node = head;
            WriteLine("Before reverse");
            WriteLine(head.Previous == null);
            while(node != null)
            {
                WriteLine(node.Data);
                node = node.Next;
            }

            node = head;
            while (node != null)
            {
                var temp = node.Previous;
                node.Previous = node.Next;
                node.Next = temp;

                node = node.Previous;
            }


            WriteLine("Before reverse");
            WriteLine(head.Next == null);
            node = head;
            while (node != null)
            {
                WriteLine(node.Data);
                node = node.Previous;
            }


        }
Пример #2
0
        static void Main(string[] args)
        {

            DoubleLinkedNode previous = null;
            DoubleLinkedNode start = null;
            for (int i = 0; i < 10; i++)
            {
                DoubleLinkedNode node = new DoubleLinkedNode() {Data  = i};
                if (previous != null)
                {
                    previous.Next = node;
                    node.Previous = previous;
                }
                else
                {
                    start = node;
                }
                previous = node;

            }

            ReverseLinkedList(start);
            Console.ReadLine();

        }