//两个有序链表的合并 递归实现
#include<iostream>
using namespace std;
struct NODE
{
int data;
NODE *next;
};
NODE *Listmerge(NODE *L1,NODE *L2)
{
if(L1==NULL)
return 0;
if(L2==NULL)
return 0;
NODE *head=NULL;//开一个表
if(L1->data<L2->data)//从低到高排列
{
head=L1;
head->next=Listmerge(L1->next,L2);//是head->next表的下一步
}
else
{
head=L2;
head->next=Listmerge(L1,L2->next);
}
return head;
}
int main()
{
NODE s1,s2,s3,s4;
NODE n1,n2,n3,n4;
s1.data=1;
s1.next=&s2;
s2.data=3;
s2.next=&s3;
s3.data=5;
s3.next=&s4;
s4.data=7;
s4.next=NULL;
n1.data=2;
n1.next=&n2;
n2.data=4;
n2.next=&n3;
n3.data=6;
n3.next=&n4;
n4.data=8;
n4.next=NULL;
NODE *L1=&s1;
NODE *L2=&n1;
NODE *head=Listmerge(L1,L2);
while(head!=NULL)
{
cout<<head->data<<endl;
head=head->next;
}
}
两个有序链表的合并 递归
猜你喜欢
转载自blog.csdn.net/qq_40916491/article/details/85076239
今日推荐
周排行