/// <summary>
        /// Merges two Linked Lists into one Linked List
        /// </summary>
        /// <param name="list1">First Linked List to be merged</param>
        /// <param name="list2">Second Linked List to be merged</param>
        /// <returns>Merged Linked List</returns>
        public static SLinkedList MergeTwoLL(SLinkedList list1, SLinkedList list2)
        {
            int length1 = list1.LLLength();
            int length2 = list2.LLLength();

            if (length2 > length1)
            {
                list2.Head = list2.Current;
                list1.Head = list1.Current;

                SLinkedList list = new SLinkedList(list2.Current);
                list.Insert(list1.Current.Data);

                list2.Current = list2.Current.Next;
                list1.Current = list1.Current.Next;


                while (list2.Current.Next != null && list1.Current.Next != null)
                {
                    list.Insert(list2.Current.Data);
                    list.Insert(list1.Current.Data);
                    list2.Current = list2.Current.Next;
                    list1.Current = list1.Current.Next;
                }
                if (list2.Current.Next != null)
                {
                    while (list2.Current.Next != null)
                    {
                        list.Insert(list2.Current.Data);
                        list2.Current = list2.Current.Next;
                    }
                }
                list.Insert(list2.Current.Data);
                list.Insert(list1.Current.Data);

                return(list);
            }
            else
            {
                list1.Head = list1.Current;
                list2.Head = list2.Current;

                SLinkedList list = new SLinkedList(list1.Current);
                list.Insert(list1.Current.Data);

                list1.Current = list1.Current.Next;
                list2.Current = list2.Current.Next;


                while (list1.Current.Next != null && list2.Current.Next != null)
                {
                    list.Insert(list1.Current.Data);
                    list.Insert(list2.Current.Data);
                    list1.Current = list1.Current.Next;
                    list2.Current = list2.Current.Next;
                }
                if (list1.Current.Next != null)
                {
                    while (list1.Current.Next != null)
                    {
                        list.Insert(list1.Current.Data);
                        list1.Current = list1.Current.Next;
                    }
                }
                list.Insert(list1.Current.Data);
                list.Insert(list2.Current.Data);
                return(list);
            }
        }