def _r_mergeKLists(self, lists, start, end): if start >= end: return lists[start] mid = (start + end) // 2 listnode1 = self._r_mergeKLists(lists, start, mid) listnode2 = self._r_mergeKLists(lists, mid + 1, end) return self._merge(listnode1, listnode2) def _mergeKLists(self, lists): length = len(lists) if length == 0: return None return self._r_mergeKLists(lists, 0, length - 1) if __name__ == '__main__': obj = Solution() while True: k = int(input()) lists = [] for _ in range(k): nums_str = input().strip().split() nums = list(map(int, nums_str)) list_node = list_to_list_node(nums) lists.append(list_node) head = obj._mergeKLists(lists) res = list_node_to_list(head) print(res)
if k % 2 == 0: k += 1 head1.next = self._merge(head1.next, head2, k) return head1 else: k += 1 head2.next = self._merge(head1, head2.next, k) return head2 def _reverse(self, head): pre = None cur = head while cur: next = cur.next cur.next = pre pre = cur cur = next return pre if __name__ == '__main__': obj = Solution() while True: l1_str = input().strip() l1 = list(map(int, l1_str.split())) l1 = list_to_list_node(l1) # k = int(input().strip()) res_node = obj.reorderList(l1) res = list_node_to_list(res_node) print(res)