首页 > 其他 > 详细

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

时间:2018-11-04 12:19:00      阅读:194      评论:0      收藏:0      [点我收藏+]

假设头指针为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); 
}

 

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!