已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。 要求S3中没有重复元素。
输入格式:
输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。
输出格式:
在一行中输出合并后新的非降序链表,要求链表中没有重复元素。数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。
输入样例:
在这里给出一组输入。例如:
1 3 3 5 8 -1
2 3 4 6 8 10 -1
输出样例:
在这里给出相应的输出。例如:
1 2 3 4 5 6 8 10
#include<iostream>
using namespace std;
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*Linklist;
void CreatList(Linklist &L){
int d;Linklist q,r;
L=new LNode;
r=L;
L->next=NULL;
while(1){
cin>>d;
if(d!=-1){
q=new LNode;
q->data=d;
q->next=NULL;
r->next=q;
r=q

该问题要求设计一个函数,合并两个非降序链表S1和S2,生成新链表S3,保证S3中没有重复元素且保持非降序。输入为两个非降序序列,用-1表示结束。输出为合并后的非降序序列,无多余空格。难点在于处理空链表、相同元素以及结尾处理。解决方案需检查新元素与当前节点值,确保不重复,并正确处理链表结尾。
 20分&spm=1001.2101.3001.5002&articleId=105523090&d=1&t=3&u=5d98e93887a04695a668aa2de6bb4475)
1万+

被折叠的 条评论
为什么被折叠?



