美文网首页
合并有序链表

合并有序链表

作者: 小码弟 | 来源:发表于2018-09-28 17:14 被阅读0次

问题描述:合并两个有序链表,不使用额外空间

思路:由于链表已经有序,只需要设置两个工作指针,每次把较小的那个指针附加在目标链表后面。

LinkList mergeSortedList(LinkList head1, LinkList head2)
{
// 这里略过链表为空的情况
  LinkNode* p1 = head->next;
  LinkNode* p2 = head->next;
  LinkNode* p = NULL;
  head1->next = p;
  if(p1->data <= p2->data)
  {
    p=p1;
    p1=p1->next;
  }
  if(p2->data > p2->data)
   {
    p=p2;
    p2=p2->next;
  }
  while(p1 && p2)
  {
    if(p1->data <= p2->data)
    {
            p->next = p1;
            p = p->next;
            p1 = p->next;
     }
    if(p1->data < p2->data)
    {
        p->next = p2;
        p = p->next;
        p2=p2->next;
    }
  }
if(p2) p1=p2;
p->next = p1; //剩下的直接接到后面
return head;
}

相关文章

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

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

  • 2018-12-26

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

  • 合并单链表

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

  • leetcode 链表 [C语言]

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

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

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

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

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

  • 21. 合并两个有序链表

    20180923-摘抄自21. 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定...

  • 2022-02-23 链表专栏

    链表基础 类别 1、合并两个有序链表2、合并 k 个有序链表3、寻找单链表的倒数第 k 个节点4、寻找单链表的中点...

  • leetcode的题目21

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

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

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

网友评论

      本文标题:合并有序链表

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