题解参考:
public ListNode mergeKLists(ListNode[] lists, int l, int r) {
if (l == r) {//就一条链表,直接返回
return lists[l];
}
if (l > r) {//数组中没有链表
return null;
}
//对链表分而治之
int mid = (l + r) >> 1;
return mergeTwoLists(mergeKLists(lists, l, mid), mergeKLists(lists, mid + 1, r));
}
总结
反思:按照https://codetop.cc/#/home
这个链接的顺序做的,没注意到今天写的都是简单题,明天需要把简单,中等,困难各一道
两个链表相交,不能一次完整写出,需要反思
最大子序和和合并K个链表都用到了分而治之的思想。