美文网首页
合并两个排序的链表

合并两个排序的链表

作者: 小小的白菜 | 来源:发表于2018-09-21 18:24 被阅读0次

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

递归版

递归版详解

function Merge(pHead1, pHead2) {
    // write code here
    let head = null
    if(pHead1 === null) {
      return pHead2
    }
    if(pHead2 === null) {
      return pHead1
    }
    if(pHead1.val < pHead2.val) {
      head = pHead1
      head.next = Merge(pHead1.next, pHead2)
    } else {
      head = pHead2
      head.next = Merge(pHead1, pHead2.next)
    }
    return head
  }

非递归版本

讨论区

  function Merge(pHead1, pHead2) {
    if (pHead1 === null) {
      return pHead2
    }
    if (pHead2 === null) {
      return pHead1
    }
    let mergeHead = null
    let current = null
    while (pHead1 !== null && pHead2 !== null) {
      if (pHead1.val <= pHead2.val) {
        if (mergeHead === null) {
          mergeHead = current = pHead1
        } else {
          current.next = pHead1
          current = current.next
        }
        pHead1 = pHead1.next
      } else {
        if (mergeHead === null) {
          mergeHead = current = pHead2
        } else {
          current.next = pHead2
          current = current.next
        }
        pHead2 = pHead2.next
      }
    }
    if (pHead1 === null) {
      current.next = pHead2
    } else {
      current.next = pHead1
    }
    return mergeHead
  }

相关文章

  • 面试题25. 合并两个排序的链表

    合并两个排序的链表 题目描述 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例: ...

  • LeetCode题解之合并两个排序的链表

    合并两个排序的链表 题目描述 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1:...

  • 25:合并两个排序的链表

    题目25:合并两个排序的链表 输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的 举例说...

  • LeetCode 每日一题 [56] 合并两个排序的链表

    LeetCode 合并两个排序的链表 [简单] 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增...

  • leecode刷题(27)-- 合并k个排序链表

    leecode刷题(27)-- 合并k个排序链表 合并k个排序链表 合并 k 个排序链表,返回合并后的排序链表。请...

  • 剑指offer之合并两个排序的列表

    合并两个排序的列表 欢迎关注作者简书csdn传送门 题目   输入两个递增排序的链表,合并这两个链表并使新链表中的...

  • 2018-12-26

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

  • 面试题25:合并两个排序的链表

    题目:输入两个递增排序的链表,合并这两个链表并使新链表中的节点依然是排序的

  • [LeetCode OJ]- Merge Two Sorted

    题目要求:合并两个单向已排序的链表l1和l2,返回新的链表。 思路:该问题跟合并两个已排序的数组很像,合并两个已排...

  • 链表

    1 合并两个链表 2 链表判环 并返回入环节点的值 3 两个无环单链表是否相交 4 合并两个有序链表 5 链表排序

网友评论

      本文标题:合并两个排序的链表

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