node2 = node2.next new_n = new_n.next if node1: new_n.next = node1 if node2: new_n.next = node2 return pre_h.next if __name__ == '__main__': nums_reverse = [4, 3, 7, 9] answer_nums = [9, 7, 3, 4] h_reverse = Node.init_list(nums_reverse) sol_reverse = reverse_linked_list(h_reverse) answer_reverse = Node.init_list(answer_nums) assert Node.compare(sol_reverse, answer_reverse) is True, 'Func reverse_linked_list failed' print('Func reverse_linked_list success') nums_cycle = [4, 3, 7, 9] answer = True h_cycle = Node.init_list(nums_cycle) h_cycle.next.next.next = h_cycle.next.next sol_cycle = has_cycle(h_cycle) assert sol_cycle is answer, 'has_cycle failed' print('Func has_cycle success') nums1_sorted = [1, 5, 7, 9] nums2_sorted = [2, 4, 8, 11] h1_sorted = Node.init_list(nums1_sorted) h2_sorted = Node.init_list(nums2_sorted) sol_sorted = merge_two_sorted_list(h1_sorted, h2_sorted)