public int CompareTo(CustomLinkedList <T> other)
 {
     if (ReferenceEquals(other, null))
     {
         return(-1);
     }
     return(other.Size - Size);
 }
        public CustomLinkedList(CustomLinkedList <T> source)
        {
            Guard.NotNull(source, nameof(source));

            var node = source.Head;

            for (var i = 0; i < source.Size; i++)
            {
                var clonedData = Clone(node.Data);
                PushToEnd(clonedData);

                if (ReferenceEquals(node, source.CurrentNode))
                {
                    MoveToTail();
                }

                node = node.NextNode;
            }
        }