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

我只能用递归和一下几个method:往一个list的前面加一个值如果list是null的话就新建一个list然后把值加到新的list里privatestaticLinke... 我只能用递归和一下几个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) { … }
展开
 我来答
水冰天之痕
2012-10-17 · TA获得超过716个赞
知道小有建树答主
回答量:1254
采纳率:50%
帮助的人:1156万
展开全部
这是搞哪样?
不但大费周章,而且容易错……

先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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式