我正在尝试用Java编写循环链表但我的删除功能不起作用。
答案 0 :(得分:1)
public T delete(int index) {
index = index%length;
T delete = null;
for(int i = 0; i<length-1; i++) {
if (index == 0) {
delete = current.data;
current = current.next;
last.next = current;
length--;
break;
}
current = current.next;
}
return delete;
}
此功能刚刚破解。你永远不会修改for循环中的索引,但是你总是检查它是否等于0。
有两个问题 - 第一个是你似乎永远不会初始化当前(实际上你似乎在修改一个成员变量?)。 第二个是循环,但始终将index与常量进行比较,永远不要修改常量。
如果index == i更可能是正确的,但仍然无法解释当前的情况。我可以告诉你这个循环是错误的。 你需要离开。找出你需要从这个方法中获得的行为,然后计算出算法来生成它。
您的删除代码是正确的。您的“找到要删除的元素”代码是错误的。