using System.Collections.Generic;
public static void Main()
var reorderedList = ReorderList(new LinkedList<int>(new[] {1, 2, 3, 4}));
Console.WriteLine(Enumerable.SequenceEqual(reorderedList, new[] {1, 4, 2, 3}));
public static LinkedList<int> ReorderList(LinkedList<int> list)
if(list == null || list.Count <= 2)
var newList = new LinkedList<int>();
GetNextItem(newList, list.First, list.Last);
private static void GetNextItem(LinkedList<int> list, LinkedListNode<int> head, LinkedListNode<int> tail)
list.AddLast(new LinkedListNode<int>(head.Value));
list.AddLast(new LinkedListNode<int>(tail.Value));
GetNextItem(list, head.Next, tail.Previous);