def test_remove_nth_node_from_end_of_list(self): solution = Solution() node = ListNode([1, 2, 3, 4, 5]) before = '1->2->3->4->5' self.assertEqual(ListNode.traverse(node), before) solution.removeNthFromEnd(node, 2) after = '1->2->3->5' self.assertEqual(ListNode.traverse(node), after) node = ListNode([1]) before = '1' self.assertEqual(ListNode.traverse(node), before) solution.removeNthFromEnd(node, 1) after = '1' self.assertEqual(ListNode.traverse(node), after)
def test_remove_duplicates_from_sorted_list(self): # 1->1->2 => 1->2 head = ListNode([1, 1, 2]) before = ListNode.traverse(head) self.assertEqual(before, '1->1->2') solution = Solution() solution.deleteDuplicates(head) after = ListNode.traverse(head) self.assertEqual(after, '1->2') # 1->1->2->3->3 => 1->2->3 head = ListNode([1, 1, 2, 3, 3]) before = ListNode.traverse(head) self.assertEqual(before, '1->1->2->3->3') solution.deleteDuplicates(head) after = ListNode.traverse(head) self.assertEqual(after, '1->2->3') # 1->1->1->1 => 1 head = ListNode([1, 1, 1, 1]) before = ListNode.traverse(head) self.assertEqual(before, '1->1->1->1') solution.deleteDuplicates(head) after = ListNode.traverse(head) self.assertEqual(after, '1')
def test_list_node(self): node = ListNode([1, 2, 33, 'a', 5, 4, 0]) self.assertEqual(ListNode.traverse(node), '1->2->33->a->5->4->0') node = ListNode() self.assertEqual(ListNode.traverse(node), '') node.add('a') self.assertEqual(ListNode.traverse(node), 'a') node.add('b') self.assertEqual(ListNode.traverse(node), 'a->b') node.add('c') self.assertEqual(ListNode.traverse(node), 'a->b->c') node.add(0) self.assertEqual(ListNode.traverse(node), 'a->b->c->0')
:rtype: ListNode """ if not head: return node = head.next prev = head while node: if node.val == prev.val: prev.next = node.next else: prev = node node = node.next return head solution = Solution() head = ListNode([1, 1, 2, 2, 2, 3, 3]) print(ListNode.traverse(head)) solution.deleteDuplicates(head) print(ListNode.traverse(head)) print() head = ListNode([1, 1, 1]) print(ListNode.traverse(head)) solution.deleteDuplicates(head) print(ListNode.traverse(head)) #%%