我只能用递归和一下几个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) { … }
java 递归 linked list 求 相同元素 不同元素 还有两个LIST是否相等
答案:2 悬赏:60 手机版
解决时间 2021-04-07 16:54
- 提问者网友:玫瑰园
- 2021-04-06 19:17
最佳答案
- 五星知识达人网友:第四晚心情
- 2021-04-06 20:41
这是搞哪样?
不但大费周章,而且容易错……
先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;
}
不但大费周章,而且容易错……
先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;
}
全部回答
- 1楼网友:刀戟声无边
- 2021-04-06 20:50
如果想等返回什么,如果不等返回什么?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯