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; } }
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(); }