2021 年 9 月 5 日 链接:https://leetcode-cn.com/problems/merge-two-sorted-lists/

题目

描述

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

示例

示例 1:
输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]

示例 2:
输入:l1 = [], l2 = []
输出:[]

示例 3:
输入:l1 = [], l2 = [0]
输出:[0]

限制

  • 两个链表的节点数目范围是 [0, 50]
  • -100 <= Node.val <= 100
  • l1 和 l2 均按 非递减顺序 排列

    解答

    思路

  • 迭代对比两个数组

    代码

    1. /**
    2. * @param {ListNode} l1
    3. * @param {ListNode} l2
    4. * @return {ListNode}
    5. */
    6. var mergeTwoLists = function(l1, l2) {
    7. const result = new ListNode()
    8. let currentNode = result
    9. // 如果 l1 或 l2 迭代完,则停止迭代
    10. while(l1 !== null && l2 !== null){
    11. if(l1.val <= l2.val){
    12. currentNode.next = l1
    13. l1 = l1.next
    14. }
    15. else {
    16. currentNode.next = l2
    17. l2 = l2.next
    18. }
    19. currentNode = currentNode.next
    20. }
    21. currentNode.next = l1 === null ? l2 : l1
    22. return result.next
    23. };