我正在链接列表上创建一个递归搜索方法,我收到一个错误,我甚至无法编译,所以甚至不知道我的方法是否正常工作。我的错误是“LinkedListRec类型中的方法搜索(E,E)不适用于参数(LinkedListRec,String)”
这是我的代码
private boolean search(Node<E> head,E list, E target){
if(list == null)
return false;
else if (target.equals(head.data))
return true;
else
return search(head.next,list, target);
}
private boolean search(E list, E target){
return search(head, list, target);
}
public static void main(String[] args){
LinkedListRec<String> example1 = new LinkedListRec<String>();
example1.add("a");
example1.add("b");
System.out.println(example1);
System.out.println(search(example1,"b"));
答案 0 :(得分:1)
问题在于,鉴于代码,您不能使用通用E
作为所有这些参数的类型,因为它们不是全部E
s 。两种搜索方法都是如此。
但这不是一个问题,因为搜索方法已经在链表类中了。所以你要做一些改变。
example1.search(yourString);
现在如何进行搜索将是客户端调用公共搜索方法并传入字符串或他们选择的任何E
时,您将传递给列表头部的递归帮助程序目标;没有清单。
所以签名现在将是......
private boolean search(Node<E> head, E target)...
和
public boolean search(E target)... // Needs to be public.