永发信息网

java 递归 linked list 求 相同元素 不同元素 还有两个LIST是否相等

答案:2  悬赏:60  手机版
解决时间 2021-04-07 16:54
我只能用递归和一下几个method:
往一个list的前面加一个值 如果list是null的话就 新建一个list然后把值加到新的list里
private static LinkedList add(String value, LinkedList list) { … }

返回list里的第一个值
private static String first(LinkedList list) { … }

返回list里面所有值但除了第一个
private static LinkedList rest(LinkedList list) { … }

这个List里面有没有值
private static boolean isNull(LinkedList list) { … }

两个string是否相等
private static boolean isEqual(String s1, String s2) { … }

打印list
private static void printList(LinkedList list) { … }

这个等于把list2加在list1后面 ([l1,l1,l1,l2,l2,l2])
private static LinkedList append(LinkedList list1, LinkedListlist2) {。。。)

如果这个member在list里面有的话就返回true
privatestatic boolean isMember(String member, LinkedList list) { … }

删除list里面第一个delete值 如果没有就返回原来的list
privatestatic LinkedList deleteFirst(String delete, LinkedList list) { … }

删除list里面所有delete值 如果没有就返回原来list
privatestatic LinkedList deleteAll(String delete, LinkedList list) { … }

把list 倒过来
privatestatic LinkedList reverse(LinkedList list) { … }

For the following methods assume that the user will never input a
blank list, there are no repeated elements and the order of the returned list
does not matter.

如果list1是list2的子集就返回true
privatestatic boolean subset(LinkedList list1, LinkedList list2) { … }

*//Returns a list of the union between list1 and list2.
privatestatic LinkedList union(LinkedList list1, LinkedList list2) { … }

//////////////////////////////剩下的method求大神们解答。 下面的题只能用递归和上面的method 不能有任何新建的值

返回两个list的不同元素
privatestatic LinkedList difference(LinkedList list1, LinkedList list2) { … }

返回两个list共有的元素
privatestatic LinkedList intersect(LinkedList list1, LinkedList list2) { … }

如果两个list里面的值相等 顺序不一定要一样 返回true 不一样的话返回false
privatestatic boolean equalSets(LinkedList list1, LinkedList list2) { … }
最佳答案
这是搞哪样?
不但大费周章,而且容易错……

先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;
}
全部回答
如果想等返回什么,如果不等返回什么?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
以后想做数学老师大学应学什么专业
为什么WORD中在字后面打逗号会使最后一个字后
阅读《不要抛弃学问》。(12分)诸位毕业同学
色理石是不是不如大理石好?
泰州滳滴打车总部:我欲加盟湳滴打车,但我已
做生意在衙门口的风水好吗
そ素面妖娆再羙丶乜是伤求对应男生网名 我做
尼康coolpixs2900便携数码相机好用吗
漳州诚宇健康管理有限公司地址在哪,我要去那
豪德星城雅典娜周边环境怎么样?生活便利吗?
追一个女孩子很久了,突然停止不追了,她什么
自媒体大V总是喜欢刷阅读量,为啥
中国移动运营部无限维护员到底是做什么的
列式计算:①一个数的62倍是2356,这个数是多
求Lovelive的あのねがんばれ(我说啊加油)歌
推荐资讯
古罗马和中国哪个早
孩子唱的歌曲什么什么的海洋
柏字组词有哪些
一个简约的生日会怎么样办才不失有趣又有意思
神武3手游怎么快速升级,神武3手游新手攻略
斩赤红之瞳的赤瞳最后死了没?
联通2009年上半年工作总结及下半年工作思路怎
东芝洗洗衣机水放不出来
stm32串口无法接收zigbee信号
cffps低是显卡问题吗
因删了同学微信同学把我加入黑名单而对同学表
手表的30mp是什么意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?