问题:
已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的交集——非降序链表S3。
输入格式:
输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。
输出格式:
在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。
输入样例:
1 3 5 -1
2 4 6 8 10 -1
输出样例:
NULL
思路:
第一步:先创建s1,s2链表,循环输入碰到-1表示序列结尾
第二步:定义指针分别指向p,q头结点的next
第三步:对当前p,q结点的data进行对比,由于链表序列是升序的,所以非交集data的情况,对data小的指针下移,data相等,表示交集,插入新链表m中
第四步:对m结点进行判空,非空循环输出
AC代码:
#include<stdio.h>
#include<stdlib.h>
struct ListNode
{
int data;
struct ListNode* next;
};
typedef struct ListNode node;
int main()
{
int i;
node l1,l2,l3;
l1.next=NULL;
l2.next = NULL;
l3.next = NULL