public static void Main()
var list = new LinkedList<int>(new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 });
Console.WriteLine($"normal: {list}");
Console.WriteLine($"reversed: {list}");
public class LinkedList<T>
private Node<T> startNode;
public LinkedList(T[] startingValues)
Node<T> previousNode = null;
for (int i = 0; i < startingValues.Length; i++)
Value = startingValues[i]
if (previousNode != null)
previousNode.Next = node;
Node<T> previousNode = null;
Node<T> currentNode = startNode;
while (currentNode != null)
nextNode = currentNode.Next;
currentNode.Next = previousNode;
previousNode = currentNode;
startNode = previousNode;
public override string ToString()
string result = string.Empty;
var currentNode = startNode;
while (currentNode != null)
result += $"{currentNode.Value},";
currentNode = currentNode.Next;
return result.Substring(0, result.Length - 1);