已知两个非降序链表序列S1与S2设計函数构造出S1与S2的交集新链表S3。
输入分两行分别在每行给出由若干个正整数构成的非降序序列,用?1表示序列的结尾(?1不属于这个序列)数字用空格间隔。
在一行中输出两个输入序列的交集序列数字间用空格分开,结尾不能有多余空格;若新链表为空输出NULL
。
此题絀得不好其中“交集序列”的定义没有给清楚。到底是两个序列中尽可能多地相同为“交集”还是按照集合的无重复元素的定义。更坑的是其测试点没有专门列出这种情况,完全是在考验你黑箱猜模型的能力
(特意将“交集序列”的每一个元素及其对应的来源于输入序列的哪个元素着上相同的颜色未使用到“交集序列”中的元素为黑色)
先统一將序列录入,再用归并排序找到交集元素直接打印。
//“二合一”归并排序 ++i0; //升序序列小者++才能靠近大者
将此题当作输入的是两个链表表示的有序序列,返回也要是一个链表表示交集序列。
模仿leetcode用代码镶嵌的方法改造此题。首先预定义链表节点结构体还要写好执行的部分,而答題者只需写 Solution类里面的getUnitedList方法
那么getUnitedList方法可以这么写(由于返回的链表节点抽取自原链表,故会改变原链表)