【Leetcode】23.合并K个升序链表

38 阅读1分钟

leetcode-23.png

其实已经做出来了21题,这一题也就不会太难了,调用21题的方法即可
注意处理头节点,以及current节点

var mergeKLists = function (lists) {
  let dummy = new ListNode(-1)
  let current = dummy
  for (let list of lists) {
    current.next = mergeTwoLists(current.next, list)
  }
  return dummy.next
}
var mergeTwoLists = function (a, b) {
  let dummy = new ListNode(-1)
  let current = dummy
  while (a && b) {
    if (a.val <= b.val) {
      current.next = a
      a = a.next
    } else {
      current.next = b
      b = b.next
    }
    current = current.next
  }
  if (!a) current.next = b
  if (!b) current.next = a
  return dummy.next
}