/// <summary>
        /// <para> Reverses the SortedLinkedList with its current <see cref="IComparer{T}"/></para>
        /// <para> Expected Runtime: O(n), where n is the size of the list.</para>
        /// </summary>
        public new void Reverse()
        {
            this.reversalFactor *= -1;
            SortedLinkedList <T> newSortedMethod = new SortedLinkedList <T>();

            foreach (T value in this)
            {
                newSortedMethod.Add(value);
            }

            this.Clear();

            foreach (T value in newSortedMethod)
            {
                this.Add(value);
            }
            newSortedMethod.Dispose();
        }
        /// <summary>
        /// <para>Sorts the list with the new <see cref="IComparer{T}"/></para>
        /// <para>Expected Runtime: O(n), where n is the size of the list.</para>
        /// </summary>
        /// <param name="newComparer"></param>
        public void Sort(IComparer <T> newComparer)
        {
            SortedLinkedList <T> newSortedMethod = new SortedLinkedList <T>(newComparer);

            foreach (T value in this)
            {
                newSortedMethod.Add(value);
            }

            //TODO: Should this just return this new copy?

            this.Clear();
            this.Comparer = newComparer;

            foreach (T value in newSortedMethod)
            {
                this.Add(value);
            }
            newSortedMethod.Dispose();
        }