import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param lists ListNode类ArrayList * @return ListNode类 */ public ListNode mergeKLists (ArrayList<ListNode> lists) { // write code here ListNode p = null; for(int i = 0; i< lists.size(); i++) { p = merge2(p, lists.get(i)); } return p; } ListNode merge2(ListNode p1, ListNode p2) { if (p1 == null) return p2; if (p2 == null) return p1; if (p1.val < p2.val) { p1.next = merge2(p1.next, p2); return p1; } else { p2.next = merge2(p1, p2.next); return p2; } } }