using System.Collections.Generic;
public static void Main()
root = InsertAtEnd(root, 10);
root = InsertAtEnd(root, 11);
TravarseNodesReverse(root);
public static Node GetNodes()
Node rootNode = new Node();
Node lastNode = rootNode;
for(var i=1; i < 10; i++)
Node newNode = new Node();
lastNode.Next = rootNode;
rootNode.Prev = lastNode;
public static void TravarseNodes(Node root)
Console.Write(root.Data + " ");
Node tempRoot = root.Next;
Console.Write(tempRoot.Data + " ");
tempRoot = tempRoot.Next;
public static void TravarseNodesReverse(Node root)
Node lastNode = root.Prev;
Console.Write(lastNode.Data + " " );
lastNode = lastNode.Prev;
Console.Write(root.Data + " " );
public static Node InsertAtBegining(Node root, int data)
Node newNode = new Node();
Node tempRootPrev = root.Prev;
tempRootPrev.Next = newNode;
newNode.Prev = tempRootPrev;
public static Node InsertAtEnd(Node root, int data)
Node newNode = new Node();
newNode.Prev = root.Prev;
root.Prev.Next = newNode;
public int Data { get; set; }
public Node Next { get; set; }
public Node Prev { get; set; }