You are given an array lists of k linked lists, each already sorted in non-decreasing order.
Merge all of them into one sorted linked list and return its head.
Each element of lists is a ListNode ({ val, next }); an empty list is null. The array itself may be empty ([]), and individual lists may be empty ([[]]). Return the merged list, or the empty list ([]) if there are no nodes.
[[1,4,5],[1,3,4],[2,6]][][[]][[],[1]][[-2,-1,-1],[-3,0,1]][[2]]