java - 递归搜索链表

标签 java search recursion linked-list

我正在链接列表上创建一个递归搜索方法,但出现错误,我什至无法编译,所以甚至不知道我的方法是否正常工作。我的错误是“LinkedListRec 类型中的方法 search(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"));

最佳答案

问题是,根据代码,您不能使用通用 E作为所有这些参数的类型,因为它们并不全部E s。两种搜索方法都是如此。

但这并不是真正的问题,因为搜索方法已经在链表类中。因此您需要进行一些更改。

  1. 在主调用中使用 example1.search(yourString); 进行搜索
  2. 从搜索方法中完全删除列表参数;不需要。

当客户端调用公共(public)搜索方法并传入字符串或其他内容时,您现在将如何进行搜索 E他们选择你将列表的头部和目标传递给你的递归助手;没有列表。

所以签名现在将是......

private boolean search(Node<E> head, E target)...

public boolean search(E target)... // Needs to be public.

关于java - 递归搜索链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29527414/

相关文章:

java - fragment 错误中的 Android getListView()

java - 从 ViewPager fragment 获取 Google map

algorithm - Google 搜索图片算法 - 它是如何工作的?

Java 等待/通知不工作

java - Heroku 上的 Dropwizard DataSourceFactory 只有 DATABASE_URL

mysql - 检查 &lt;input&gt; 是否为空或只有空格

windows - System.IO.Directory.GetFiles 返回的结果与 Windows XP Search Companion 不同

java - NullPointerException 用字符串长度初始化变量

javascript - 循环无限嵌套对象并构造字符串

java - 递归计算所有数组元素组合问题