合并两个有序链表

Posted cocobear9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了合并两个有序链表相关的知识,希望对你有一定的参考价值。

 

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

示例:

输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4

思路: 先把两个链表合并,然后冒泡排序!初学者の笨比解法@@

struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){
    int i,j,temp,len=0;
   struct ListNode* p = l1 ;
   struct ListNode* q;
   if(l1 ==NULL) return l2;
   if(l2 == NULL) return l1 ;
   
    while(p->next!=NULL )
    {
        p=p->next ;
    }
   // printf("此时第一个链表的尾结点值是:%d",p->val);
    p->next = l2 ;
    p = l1   ;
    while(p!=NULL) //计算新链表的长度
    {
        p=p->next ;
        len++ ;
    }
    for(i=0;i<len-1;i++)
    {
        for(j=0,q=l1;j<len-i-1;j++,q=q->next)
        {
            if(q->val > q->next->val)
            {
                temp= q->val;
                q->val=  q->next->val ;
                q->next->val= temp ;
            }
        }
    }
    return l1 ;
}

以上是关于合并两个有序链表的主要内容,如果未能解决你的问题,请参考以下文章

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

21. 合并两个有序链表

合并两个有序链表

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

链表:合并两个有序的链表

21. 合并两个有序链表