美文网首页
leetcode-21-合并两个有序链表

leetcode-21-合并两个有序链表

作者: kayleeWei | 来源:发表于2021-03-30 01:24 被阅读0次

// https://leetcode-cn.com/problems/merge-two-sorted-lists/
/**

  • @param {ListNode} l1

  • @param {ListNode} l2

  • @return {ListNode}
    */
    // 方法一:递归
    var mergeTwoLists = function(l1, l2) {
    if (l1 === null) return l2;
    if (l2 === null) return l1;

    if (l1.val < l2.val) {
    l1.next = mergeTwoLists(l1.next, l2);
    return l1;
    } else {
    l2.next = mergeTwoLists(l1, l2.next);
    return l2;
    }
    };

// 方法二:迭代
var mergeTwoLists = function(l1, l2) {
var preHead = new ListNode(-1);
var prev = preHead;

while(l1 !== null && l2 !== null) {
if (l1.val <= l2.val) {
prev.next = l1;
prev = l1;
l1 = l1.next;
} else {
prev.next = l2;
prev = l2;
l2 = l2.next;
}
}
// 合并后 l1 和 l2 最多只有一个还未被合并完,我们直接将链表末尾指向未合并完的链表即可
if (l1 !== null) {
prev.next = l1;
} else if (l2 !== null) {
prev.next = l2;
}
return preHead.next;
}

相关文章

  • LeetCode-21-合并两个有序链表

    LeetCode-21-合并两个有序链表 题目 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的...

  • leecode刷题(23)-- 合并两个有序链表

    leecode刷题(23)-- 合并两个有序链表 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回。新...

  • 合并单链表

    合并两个有序链表非递归实现 合并两个有序链表递归实现

  • leetcode-21-合并两个有序链表

    // https://leetcode-cn.com/problems/merge-two-sorted-lis...

  • leetcode 链表 [C语言]

    21. 合并两个有序链表 合并两个有序链表 61. 旋转链表 (快慢指针) 61. 旋转链表 相关标签 : 链表 ...

  • ARTS-Week6 有序链表合并、DevOps、Json解析、

    Algorithm LeetCode原题链接: 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回。新链...

  • 2018-12-26

    问题列表 合并两个有序链表 合并K个排序链表 合并区间 插入区间 问题与反馈 总结与收获 多个有序链表的合并,类似...

  • leetcode的题目21

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

  • Swift 合并两个有序链表 - LeetCode

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

  • LeetCode 21. 合并两个有序链表

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

网友评论

      本文标题:leetcode-21-合并两个有序链表

      本文链接:https://www.haomeiwen.com/subject/pjdvhltx.html