def run_test_case(t: testlib.unittest.TestCase, tc: Tuple[List[int], int, List[int]]): head = ListNode.fromList(tc[0]) el_to_remove = head for _ in range(tc[1]): el_to_remove = el_to_remove.next Solution().deleteNode(el_to_remove) t.assertEqual(repr(head), repr(ListNode.fromList(tc[2])))
if not head or head.next is None: return head odd = head even = head.next even_head = even while even and even.next: odd.next = even.next odd = odd.next even.next = odd.next even = even.next odd.next = even_head return head if __name__ == "__main__": testdata = [ ([1], [1]), ([1, 2], [1, 2]), ([1, 2, 3], [1, 3, 2]), ([1, 2, 3, 4, 5], [1, 3, 5, 2, 4]), ([2, 1, 3, 5, 6, 4, 7], [2, 3, 6, 7, 1, 5, 4]), ] testlib.run( lambda t, tc: t.assertEqual( repr(Solution().oddEvenList(ListNode.fromList(tc[0]))), repr(ListNode.fromList(tc[1])), tc, ), testdata, )