【发布时间】:2018-11-13 01:19:52
【问题描述】:
我的任务是编写一个包装器和递归方法来搜索给定项目并返回该项目在链表中的索引。这是我拥有的代码,它适用于列表中的项目,但是当给定一个不在列表中的项目时,它只返回尾部的索引。知道我在这里做错了什么吗?
public int searchIndex(E item) {
return searchIndex(item, head, 0);
}
private int searchIndex(E item, Node<E> node, int index) {
if (node == null) {
return -1;
}
else if (item.equals(node.data)) {
return 0;
}
else {
return 1 + searchIndex(item, node.next, index);
}
}
【问题讨论】:
-
如果它不在列表中,您希望它返回什么?原因:
1 + searchIndex您正在添加 1,直到您在元素不存在时迭代整个列表。
标签: java recursion linked-list