使用list来代替链表
考虑到时间限制,故对while进行优化,另外迭代器的指针越多,跑的越慢,实在是太耗时!
//链表合并
#include<iostream>
#include<list>
using namespace std;
int main(){
int s1,s2,a,b;
list<int> list1,list2,list1_2;
//链表s1
cin>>s1;
for(int i=0;i<s1;i++){
cin>>a;
list1.push_back(a);
}
//链表s2
cin>>s2;
for(int i=0;i<s2;i++){
cin>>b;
list2.push_back(b);
}
//指针的初始化
list<int>::iterator it1=list1.begin();
list<int>::iterator it2=list2.begin();
while(it1!=list1.end() || it2!=list2.end()){
if(*it1<*it2 || it2==list2.end()){
list1_2.push_back(*it1);
it1++;
}else{
list1_2.push_back(*it2);
it2++;
}
}
list<int>::iterator it3;
//加入完成,遍历list1_2
for(it3=list1_2.begin();it3!=list1_2.end();it3++) cout<<*it3<<" ";
return 0;
}