Ejemplo n.º 1
0
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,
    )