链表的合并

两个有序链表,合并成一个有序链表

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <vector>
#include <math.h>
#include <map>
#include <queue>
using namespace std;
typedef struct Lnode
{
    int data;
    struct Lnode *next;
}L,*link;
void creat(link &h,int n)
{
    h=new L;
    h->next=NULL;link r=h;
    while(n--)
    {
    	link p;
    	p=new L;
    	cin>>p->data;
    	p->next=NULL;
    	r->next=p;
    	r=p;
    }
}
void Union(link la,link lb,link &p)
{
    link a,b;
    a=la->next;b=lb->next;
    p=new L;
    p->next=NULL;
    link lc=p;
    while(a!=NULL&&b!=NULL)
    {
        if(a->data>b->data)
        {
            lc->next=b;
            lc=b;
            b=b->next;
        }
        else
        {
            lc->next=a;
            lc=a;
            a=a->next;
        }

    }
    if(a!=NULL)
    {
        lc->next=a;
    }
    if(b!=NULL)
    {
        lc->next=b;
    }
    free(a);
    free(b);
}
int main()
{
    //freopen("in.txt","r",stdin);
   link la,lb,lc;
   int n,m;
   cin>>n>>m;
   creat(la,n);
   creat(lb,m);
   Union(la,lb,lc);
   link p=lc->next;
   while(p!=NULL)
   {
    cout<<p->data<<endl;
    p=p->next;
   }
    return 0;
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值