public void MergeTwoSortedListsProblem_Case3()
        {
            // Arrange
            var obj      = new MergeTwoSortedListsProblem();
            var l1       = ListNode.CreateListNode();
            var l2       = ListNode.CreateListNode(0);
            var expected = ListNode.CreateListNode(0);

            // Act
            ListNode actual = obj.MergeTwoLists(l1, l2);

            // Assert
            Assert.Equal(expected, actual);
        }
        public void MergeTwoSortedListsProblemTest()
        {
            var solution = new MergeTwoSortedListsProblem();

            var l1 = new ListNode(1)
            {
                next = new ListNode(2)
                {
                    next = new ListNode(4)
                    {
                        // next = new ListNode(3)
                    }
                }
            };

            var l2 = new ListNode(1)
            {
                next = new ListNode(3)
                {
                    next = new ListNode(4)
                    {
                        //next = new ListNode(5)
                        //{
                        //    next = new ListNode(6)
                        //}
                    }
                }
            };

            var result   = solution.MergeTwoLists(l1, l2);
            var previous = result.val;

            while (result != null)
            {
                if (result.val < previous)
                {
                    throw new Exception();
                }

                previous = result.val;
                result   = result.next;
            }
        }