java 递归 linked list 求 相同元素 不同元素 还有两个LIST是否相等
发布网友
发布时间:2022-04-27 11:44
我来回答
共1个回答
热心网友
时间:2023-08-04 01:30
这是搞哪样?
不但大费周章,而且容易错……
先equalSets吧,
private static boolean equalSets(LinkedList list1, LinkedList list2){
return subset(list1,list2)&&subset(list2,list1);// 集合的内容,两集合互为子集就是相等了
}
然后difference,
private static LinkedList difference(LinkedList list1, LinkedList list2){
while(isNull(list2)){
if(isMember(first(list2),list1))
list1=deleteAll(first(list2),list1);// 将重复元素去除
else
list1=add(first(list2),list1);// 非重复元素存入list1
list2=rest(list2);
}
return list1;
}
最后intersect,
private static LinkedList intersect(LinkedList list1, LinkedList list2){
list2=difference(list1,list2);// 得到两集合不同的元素
while(isNull(list2)){
if(isMember(first(list2),list1))
;// 元素重复,什么也不干
else
list1=deleteAll(first(list2),list1);// 非重复元素删除
list2=rest(list2);
}
return list1;
}