示例#1
0
 def test_quicksort_list(self):
     A = ListNode.makeList([5, 4, 3, 2, 1, 6, 10, 7, 8, 9])
     quicksort_list(A, None)
     A.show()
     A = ListNode.makeList([2, 1, 2, 4, 5, 9, 8])
     quicksort_list(A, None)
     A.show()
     A = ListNode.makeList([10])
     quicksort_list(A, None)
     A.show()
示例#2
0
 def test_hasCycle(self):
     s = LeetSolution()
     self.assertFalse(s.hasCycle(None))
     A = ListNode.makeList([1])
     self.assertFalse(s.hasCycle(A))
     A.next = A
     self.assertTrue(s.hasCycle(A))
     A = ListNode.makeList([1, 2, 3, 4, 5])
     self.assertFalse(s.hasCycle(A))
     A = ListNode.makeList([1, 2, 3, 4, 5])
     A.tail.next = A.next.next
     self.assertTrue(s.hasCycle(A))
示例#3
0
 def test_removeNthFromEnd(self):
     s = LeetSolution()
     head = ListNode.makeList([1, 2, 3, 4, 5])
     s.removeNthFromEnd(head, 2).show()
     head = ListNode.makeList([1, 2])
     s.removeNthFromEnd(head, 1).show()
     head = ListNode.makeList([1])
     print(s.removeNthFromEnd(head, 1))
     head = ListNode.makeList([1, 2])
     s.removeNthFromEnd(head, 2).show()
     head = ListNode.makeList([1, 2, 3])
     s.removeNthFromEnd(head, 3).show()
示例#4
0
 def test_detectCycle(self):
     s = LeetSolution()
     self.assertEqual(None, s.detectCycle(None))
     A = ListNode.makeList([1])
     self.assertEqual(None, s.detectCycle(A))
     A = ListNode.makeList([1, 2, 3, 4, 5])
     self.assertEqual(None, s.detectCycle(A))
     A = ListNode.makeList([1])
     A.next = A
     self.assertEqual(1, s.detectCycle(A).val)
     A = ListNode.makeList([1, 2, 3, 4, 5])
     A.tail.next = A.next.next
     self.assertEqual(3, s.detectCycle(A).val)
示例#5
0
 def test_mergeKLists2(self):
     s = LeetSolution()
     values = [sorted([randint(0, 100) for x in range(0, 50)]) for x in range(0, 7)]
     new = copy.deepcopy(values)
     lists = [ListNode.makeList(value) for value in new]
     result = []
     for v in values:
         result.extend(v)
     result.sort()
     self.assertEqual(result, s.mergeKLists2(lists).toarray())
示例#6
0
 def test_insertsort_list(self):
     A = ListNode.makeList([])
     self.assertEqual(None, insertsort_list(A))
     A = ListNode.makeList([5, 4, 3, 2, 1, 6, 10, 7, 8, 9])
     insertsort_list(A).show()
     A = ListNode.makeList([2, 1, 2, 4, 5, 9, 8])
     insertsort_list(A).show()
     A = ListNode.makeList([1])
     insertsort_list(A).show()
     A = ListNode.makeList([1, 1])
     insertsort_list(A).show()
     A = ListNode.makeList(list(range(0, 5000)))
     insertsort_list(A).show()
示例#7
0
 def test_show(self):
     array = [1, 2, 3, 4, 5]
     head = ListNode.makeList(array)
     head.show()
     print(head)
示例#8
0
 def test_mergeTwoLists(self):
     s = LeetSolution()
     print(s.mergeTwoLists(None, None))
     s.mergeTwoLists(ListNode.makeList([1, 3, 7, 8]), ListNode.makeList([2, 6, 9, 10])).show()
     s.mergeTwoLists(ListNode.makeList([1, 3, 7, 8]), None).show()
示例#9
0
 def test_deleteDuplicates(self):
     s = LeetSolution()
     s.deleteDuplicates(ListNode.makeList([1, 1, 2, 3, 3])).show()
     s.deleteDuplicates(ListNode.makeList([1, 1, 2])).show()
     self.assertIsNone(s.deleteDuplicates(ListNode.makeList(None)))
示例#10
0
 def test_addTwoNumbers(self):
     s = LeetSolution()
     l1 = ListNode.makeList([2, 4, 3])
     l2 = ListNode.makeList([5, 6, 4])
     print(s.addTwoNumbers(l1, l2))
示例#11
0
 def test_partition_list(self):
     A = ListNode.makeList([5, 4, 3, 2, 1, 6, 10, 7, 8, 9])
     par = partition_list(A, None)
     print(par.val)
     A.show()