【Leetcode】21.合并两个有序链表

49 阅读1分钟

leetcode-21.png

用一个新链表来承接所有数据即可 对比当前的两个节点,谁小谁赋值给新链表
这里说的赋值,指的是节点的指向,让当前节点指向满足条件的节点
然后挪动当前节点(12行)以及满足条件的节点(7、10行)

循环完其中一个链表后,另外的链表尾部直接给current指向即可

var mergeTwoLists = function (list1, list2) {
  let dummy = new ListNode(-1)
  let current = dummy
  while (list1 && list2) {
    if (list1.val <= list2.val) {
      current.next = list1
      list1 = list1.next
    } else {
      current.next = list2
      list2 = list2.next
    }
    current = current.next
  }
  if (!list1) current.next = list2
  if (!list2) current.next = list1
  return dummy.next
};