Java 我无法让我的双链接列表正确删除列表中的节点,它看起来应该可以工作,但不能。我做错了什么?
因此,我创建了一个类,它生成一个通用的双链表。问题是测试人员文件一直在说我做了一些不正确的事情。看起来它在删除测试的节点部分时开始出现问题 这是测试仪的删除部分 原始数字为0,1,2,3,4,5,6,7,8,9,最终结果应为1,3,4,5,6,7,8Java 我无法让我的双链接列表正确删除列表中的节点,它看起来应该可以工作,但不能。我做错了什么?,java,doubly-linked-list,Java,Doubly Linked List,因此,我创建了一个类,它生成一个通用的双链表。问题是测试人员文件一直在说我做了一些不正确的事情。看起来它在删除测试的节点部分时开始出现问题 这是测试仪的删除部分 原始数字为0,1,2,3,4,5,6,7,8,9,最终结果应为1,3,4,5,6,7,8 public static boolean deleteTest(GenDoubleLinkedList<Integer> intList) { printDecorated("Removing Test\nRemoving f
public static boolean deleteTest(GenDoubleLinkedList<Integer> intList)
{
printDecorated("Removing Test\nRemoving first item, third item, and last item");
intList.resetCurrent();
intList.deleteCurrent();
intList.goToNext();
intList.deleteCurrent();
while(intList.moreToIterate())
{
intList.goToNext();
}
intList.deleteCurrent();
intList.print();
return valuesMatch(intList,TEST_VALS_2);
}
我有系统。输出。打印需要排除故障
下面是控制台输出的内容
从我的系统来看,它似乎应该删除正确的节点,但当测试运行时,它显然没有删除正确的节点。我处于停顿状态,无法找出问题所在
如果需要,我可以提供整个测试仪文件以及我的任何代码。非常感谢您的帮助。current=current.nextLink应该在删除例程中更改为current=prev,并且current=current.nextLink应该从删除例程的删除头部分删除
请下次粘贴您的cade it代码标签,以便我们可以复制粘贴以引用它以及行号…显示方法resetCurrent和GotonExt请将代码作为代码而不是屏幕截图发布
public void deleteCurrent() {
if(current != null && prev != null) {
System.out.println("DELETING " + current.data);
current = current.nextLink;
prev.nextLink = current;
next.prevLink = current;
}
else if(current != null && prev == null) {
System.out.println("DELETING " + current.data);
head = head.nextLink;
current = current.nextLink;
}
}
public boolean moreToIterate() {
//System.out.println(current.nextLink != null);
if(current.nextLink != null)
return true;
return false;
}
public void resetCurrent() {
current = head;
prev = null;
next = current.nextLink;
}
public void goToNext() {
//System.out.println(current.data);
if(current != null) {
current = current.nextLink;
prev = current.prevLink;
next = current.nextLink;
}
}