首页 > 其他分享 >合并单链表

合并单链表

时间:2022-10-13 14:58:56浏览次数:56  
标签:LinkList 单链 合并 next 链表 遍历 NULL

用尾插法合并单链表

image-20221013143400683

算法思想:让头指针p指向空,用来构建链表Z,用m和n来遍历X和Y,逐个把较小的结点尾插进链表Z中,之后把剩余的链表尾插进Z的后面,形成新链表Z。

伪代码如下

void concat(LinkList p,LinkList q){
    LinkList m=p->next,n=q->next;         //定义指针m,n来遍历单链表X,Y
    LinkList r=p;                         //定义尾指针用于尾插
    p->next=NULL;                         //让头结点指向空用来准备形成新的链表Z
    while(m!=NULL&&n!=NULL){              //当当两链表都没有遍历完时进行循环
        if(m->data<n->data){              //挨个把较小的结点尾插进链表Z
            r->next=m;
            r=m;
            m=m->next;
        }
        else{
            r->next=n;
            r=n;
            n=n->next;
        }
    }
    if(n!=NULL)                           //把剩下没有遍历完的链表接入链表Z
        r->next=n;
    if(m!=NULL)
        r->next=m;
}

标签:LinkList,单链,合并,next,链表,遍历,NULL
From: https://www.cnblogs.com/Auous/p/16788120.html

相关文章