码迷,mamicode.com
首页 > 其他好文 > 详细

合并两个单链表(链表方式)

时间:2018-11-04 12:35:44      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:void   merge   nbsp   code   link   链表   元素   现在   结构   

假设头指针为La、Lb单链表分别为线性表LA、LB的存储结构,现在要合并La、Lb得到单链表Lc

void MergeList_L(LinkList La, LinkList Lb, LinkList Lc){
    //已知La、Lb的元素按值非递减排列
    //归并La、Lb得到单链表Lc,Lc的元素也是按值非递减排列的
    LinkList pa,pb,pc;
    pa = La->next;
    pb = Lb->next;
    Lc = pc = La;//用La的头结点作为Lc的头结点
    while(La && Lb){
        if(La->data<=Lb->data){
            pc->next = pa;
            pc = pa;
            pa = pa->next;
        }
        else{
            pc->next = pb;
            pc = pb;
            pb = pb->next;
        }
    }
    pc->next = pa?pa:pb;//插入剩余段 
    free(Lb); 
}

 

合并两个单链表(链表方式)

标签:void   merge   nbsp   code   link   链表   元素   现在   结构   

原文地址:https://www.cnblogs.com/geziyu/p/9903351.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!