static public void Run() { Console.WriteLine("MergekSortedLists"); ListNode[] input; ListNode exp, res; // Input: // [ // 1->4->5, // 1->3->4, // 2->6 // ] // Output: 1->1->2->3->4->4->5->6 input = new ListNode[] { ListNode.FromList(new int[] { 1, 4, 5 }), ListNode.FromList(new int[] { 1, 3, 4 }), ListNode.FromList(new int[] { 2, 6 }), }; exp = ListNode.FromList(new int[] { 1, 1, 2, 3, 4, 4, 5, 6 }); using (new Timeit()) { res = new Solution().MergeKLists(input); Assert.Equal(exp, res); } // input: [] input = new ListNode[] { }; using (new Timeit()) { res = new Solution().MergeKLists(input); Assert.Null(res); } // input: [[]] input = new ListNode[] { null }; using (new Timeit()) { res = new Solution().MergeKLists(input); Assert.Null(res); } }
static public void Run() { Console.WriteLine("ReverseNodesInkGroup"); ListNode input; int k; ListNode exp, res; // Given 1->2->3->4->5 // For k = 2, you should return: 2->1->4->3->5 input = ListNode.FromList(new int[] { 1, 2, 3, 4, 5 }); k = 2; exp = ListNode.FromList(new int[] { 2, 1, 4, 3, 5 }); using (new Timeit()) { res = new Solution().ReverseKGroup(input, k); Assert.Equal(exp, res); } // For k = 3, you should return: 3->2->1->4->5 input = ListNode.FromList(new int[] { 1, 2, 3, 4, 5 }); k = 3; exp = ListNode.FromList(new int[] { 3, 2, 1, 4, 5 }); using (new Timeit()) { res = new Solution().ReverseKGroup(input, k); Assert.Equal(exp, res); } input = null; k = 1; exp = null; using (new Timeit()) { res = new Solution().ReverseKGroup(input, k); Assert.Equal(exp, res); } Console.WriteLine("ReverseNodesInkGroup solution2"); input = ListNode.FromList(new int[] { 1, 2, 3, 4, 5 }); k = 2; exp = ListNode.FromList(new int[] { 2, 1, 4, 3, 5 }); using (new Timeit()) { res = new Solution2().ReverseKGroup(input, k); Assert.Equal(exp, res); } // For k = 3, you should return: 3->2->1->4->5 input = ListNode.FromList(new int[] { 1, 2, 3, 4, 5 }); k = 3; exp = ListNode.FromList(new int[] { 3, 2, 1, 4, 5 }); using (new Timeit()) { res = new Solution2().ReverseKGroup(input, k); Assert.Equal(exp, res); } input = null; k = 1; exp = null; using (new Timeit()) { res = new Solution2().ReverseKGroup(input, k); Assert.Equal(exp, res); } }