private static void ValidateResult <T>(Node <T> input, params T[] expectedResult)
            where T : IEquatable <T>
        {
            var input1 = ListHelpers.CloneList(input);
            var input2 = ListHelpers.CloneList(input);

            Question2_1.RemoveDuplicates(input1);
            Question2_1.RemoveDuplicatesNoSpace(input2);

            ListHelpers.ValidateLinkedListContent(input1, expectedResult);
            ListHelpers.ValidateLinkedListContent(input2, expectedResult);
        }
        public void BasicTest()
        {
            const int NumElements = 5;

            var list = ListHelpers.CreateLinkedList(Enumerable.Range(0, NumElements).Reverse().ToArray());

            for (int i = 0; i < NumElements; i++)
            {
                var input  = ListHelpers.CloneList(list);
                var result = Question2_2.FindKthToLast(input, i);

                Assert.AreEqual(i, result.Data);
            }
        }