2.10 已知一个单链表,试编写复制单链表的算法
#include<iostream>
using namespace std;
struct LinkList
{
LinkList *next;
int val;
};
void Copy(LinkList *L){
LinkList *Ln=new LinkList;//Ln为复制后的链表
LinkList *rn=Ln;//还是采用尾插法
while(L){//有多少复制多少
LinkList *p=new LinkList;
p->val=L->val; rn->next=p; rn=p;
L=L->next;
}
rn->next=NULL; Ln=Ln->next;
while(Ln){//输出验证一下是否复制正确
cout<<Ln->val<<" ";
Ln=Ln->next;
}
}
int main()
{
LinkList *L=new LinkList;
LinkList *r=L;
for(int i=0;i<8;i++){//尾插法
LinkList *p=new LinkList;
p->val=i+1; r->next=p; r=p;
}
r->next=NULL; L=L->next;
Copy(L);
return 0;
}