Example #1
0
        public void MergeKLists()
        {
            var a5 = new ListNode(5);
            var a6 = new ListNode(6);
            var a7 = new ListNode(7);

            a5.Next = a6;
            a6.Next = a7;
            var l1 = a5;

            var b1  = new ListNode(1);
            var b9  = new ListNode(9);
            var b10 = new ListNode(10);
            var b20 = new ListNode(20);

            b1.Next  = b9;
            b9.Next  = b10;
            b10.Next = b20;
            var l2 = b1;

            var c2 = new ListNode(2);
            var c9 = new ListNode(9);

            c2.Next = c9;
            var l3 = c2;

            var sut    = new MergeKSortedLists();
            var actual = sut.MergeKLists(new[] { l1, l2, l3 });

            var expected = b1;

            Assert.AreEqual(expected, actual);
        }
        public void MergeKSortedLists_ShouldMerge(int[] expected, params int[][] sourceArrays)
        {
            var lists  = sourceArrays.Select(MergeKSortedLists.CreateLinkedList).ToArray();
            var task   = new MergeKSortedLists();
            var actual = task.MergeKLists(lists).ToArray();

            Assert.AreEqual(expected, actual);
        }
Example #3
0
        public void Given_2_linked_list_When_merged_Then_return()
        {
            ListNode node1 = new ListNode(1)
            {
                next = new ListNode(3)
            };
            ListNode node2 = new ListNode(2)
            {
                next = new ListNode(4)
            };

            var result = MergeKSortedLists.MergeKLists(new ListNode[] { node1, node2 });

            Assert.AreEqual(1, result.val);
            Assert.AreEqual(2, result.next.val);
            Assert.AreEqual(3, result.next.next.val);
            Assert.AreEqual(4, result.next.next.next.val);
        }