示例#1
0
    def twoSimpoleList_test(self):
        l1node1 = ListNode(1)
        l1node2 = ListNode(2)
        l1node3 = ListNode(4)
        l1node1.next = l1node2
        l1node2.next = l1node3
        l2node1 = ListNode(1)
        l2node2 = ListNode(3)
        l2node3 = ListNode(4)
        l2node1.next = l2node2
        l2node2.next = l2node3

        resultNode1 = ListNode(1)
        resultNode2 = ListNode(1)
        resultNode3 = ListNode(2)
        resultNode4 = ListNode(3)
        resultNode5 = ListNode(4)
        resultNode6 = ListNode(4)
        resultNode1.next = resultNode2
        resultNode2.next = resultNode3
        resultNode3.next = resultNode4
        resultNode4.next = resultNode5
        resultNode5.next = resultNode6

        solution = Solution()
        result = solution.mergeTwoLists(l1node1, l2node1)
        compareResult = resultNode1.equalTo(result)
        self.assertTrue(compareResult)
示例#2
0
    def more_than_2_gruops_one_node_left_test(self):
        node1 = ListNode(1)
        node2 = ListNode(2)
        node3 = ListNode(3)
        node4 = ListNode(4)
        node5 = ListNode(5)
        node6 = ListNode(6)
        node7 = ListNode(7)
        node1.next = node2
        node2.next = node3
        node3.next = node4
        node4.next = node5
        node5.next = node6
        node6.next = node7

        k = 3

        expectedNode1 = ListNode(3)
        expectedNode2 = ListNode(2)
        expectedNode3 = ListNode(1)
        expectedNode4 = ListNode(6)
        expectedNode5 = ListNode(5)
        expectedNode6 = ListNode(4)
        expectedNode7 = ListNode(7)
        expectedNode1.next = expectedNode2
        expectedNode2.next = expectedNode3
        expectedNode3.next = expectedNode4
        expectedNode4.next = expectedNode5
        expectedNode5.next = expectedNode6
        expectedNode6.next = expectedNode7

        solution = Solution()
        actualResult = solution.swapInKGruop(node1, k)
        self.assertTrue(expectedNode1.equalTo(actualResult))
示例#3
0
    def example_k_is_3_test(self):
        node1 = ListNode(1)
        node2 = ListNode(2)
        node3 = ListNode(3)
        node4 = ListNode(4)
        node5 = ListNode(5)
        node1.next = node2
        node2.next = node3
        node3.next = node4
        node4.next = node5

        k = 3

        expectedNode1 = ListNode(3)
        expectedNode2 = ListNode(2)
        expectedNode3 = ListNode(1)
        expectedNode4 = ListNode(4)
        expectedNode5 = ListNode(5)
        expectedNode1.next = expectedNode2
        expectedNode2.next = expectedNode3
        expectedNode3.next = expectedNode4
        expectedNode4.next = expectedNode5

        solution = Solution()
        actualResult = solution.swapInKGruop(node1, k)
        self.assertTrue(expectedNode1.equalTo(actualResult))
示例#4
0
    def oneNodeList_test(self):
        l1node1 = ListNode(1)
        l2node1 = ListNode(2)
        resultNode1 = ListNode(1)
        resultNode2 = ListNode(2)
        resultNode1.next = resultNode2

        solution = Solution()
        result = solution.mergeTwoLists(l1node1, l2node1)
        compareResult = resultNode1.equalTo(result)
        self.assertTrue(compareResult)
示例#5
0
    def odd_length_test(self):
        node1 = ListNode(1)
        node2 = ListNode(2)
        node3 = ListNode(3)
        node1.next = node2
        node2.next = node3

        resultNode1 = ListNode(2)
        resultNode2 = ListNode(1)
        resultNode3 = ListNode(3)
        resultNode1.next = resultNode2
        resultNode2.next = resultNode3
        solution = Solution()
        actualResult = solution.swapPairs(node1)
        self.assertTrue(resultNode1.equalTo(actualResult))
示例#6
0
    def example_test(self):
        node1 = ListNode(1)
        node2 = ListNode(2)
        node3 = ListNode(3)
        node4 = ListNode(4)
        node1.next = node2
        node2.next = node3
        node3.next = node4

        resultNode1 = ListNode(2)
        resultNode2 = ListNode(1)
        resultNode3 = ListNode(4)
        resultNode4 = ListNode(3)
        resultNode1.next = resultNode2
        resultNode2.next = resultNode3
        resultNode3.next = resultNode4

        solution = Solution()
        actualResult = solution.swapPairs(node1)
        self.assertTrue(resultNode1.equalTo(actualResult))
示例#7
0
    def example_test(self):
        item1node1 = ListNode(1)
        item1node2 = ListNode(4)
        item1node3 = ListNode(5)
        item1node1.next = item1node2
        item1node2.next = item1node3

        item2Node1 = ListNode(1)
        item2Node2 = ListNode(3)
        item2Node3 = ListNode(4)
        item2Node1.next = item2Node2
        item2Node2.next = item2Node3

        item3Node1 = ListNode(2)
        item3Node2 = ListNode(6)
        item3Node1.next = item3Node2

        inputList = [item1node1, item2Node1, item3Node1]

        outputNode1 = ListNode(1)
        outputNode2 = ListNode(1)
        outputNode3 = ListNode(2)
        outputNode4 = ListNode(3)
        outputNode5 = ListNode(4)
        outputNode6 = ListNode(4)
        outputNode7 = ListNode(5)
        outputNode8 = ListNode(6)
        outputNode1.next = outputNode2
        outputNode2.next = outputNode3
        outputNode3.next = outputNode4
        outputNode4.next = outputNode5
        outputNode5.next = outputNode6
        outputNode6.next = outputNode7
        outputNode7.next = outputNode8

        solution = Solution()
        # actualResult = solution.mergeKLists(inputList)
        actualResult = solution.mergeKListsWithPriorityQueue(inputList)
        compareResult = outputNode1.equalTo(actualResult)
        self.assertTrue(compareResult)
示例#8
0
    def orderOfTwoLists_test(self):
        l1node1 = ListNode(1)
        l1node2 = ListNode(3)
        l1node1.next = l1node2
        l2node1 = ListNode(5)
        l2node2 = ListNode(7)
        l2node3 = ListNode(9)
        l2node1.next = l2node2
        l2node2.next = l2node3

        resultNode1 = ListNode(1)
        resultNode2 = ListNode(3)
        resultNode3 = ListNode(5)
        resultNode4 = ListNode(7)
        resultNode5 = ListNode(9)
        resultNode1.next = resultNode2
        resultNode2.next = resultNode3
        resultNode3.next = resultNode4
        resultNode4.next = resultNode5

        solution = Solution()
        result = solution.mergeTwoLists(l1node1, l2node1)
        compareResult = resultNode1.equalTo(result)
        self.assertTrue(compareResult)
示例#9
0
    def differerntLength_test(self):
        l1node1 = ListNode(1)
        l1node2 = ListNode(2)
        l1node1.next = l1node2
        l2node1 = ListNode(1)
        l2node2 = ListNode(3)
        l2node3 = ListNode(4)
        l2node1.next = l2node2
        l2node2.next = l2node3

        resultNode1 = ListNode(1)
        resultNode2 = ListNode(1)
        resultNode3 = ListNode(2)
        resultNode4 = ListNode(3)
        resultNode5 = ListNode(4)
        resultNode1.next = resultNode2
        resultNode2.next = resultNode3
        resultNode3.next = resultNode4
        resultNode4.next = resultNode5

        solution = Solution()
        result = solution.mergeTwoLists(l1node1, l2node1)
        compareResult = resultNode1.equalTo(result)
        self.assertTrue(compareResult)