public void should_find_the_last_third_element() { var listToRead = new List<int> {1, 4, 5, 7, 9, 0, -3, 4, 6, 8}; var target = 3; var pointerslow = listToRead.GetEnumerator(); var pointerfast = listToRead.GetEnumerator(); for(int i=0; i<target;i++) pointerfast.MoveNext(); while(pointerfast.MoveNext()) { pointerslow.MoveNext(); } pointerslow.MoveNext(); Assert.That(pointerslow.Current.Equals(4)); var list = new MyLinkedList<int>(); list.Insert(0); list.Insert(1); list.Insert(2); list.Insert(3); list.Insert(4); list.Insert(5); list.Insert(6); Assert.That(list.FindLastNthElement(3).Equals(4)); }