Java 我无法让我的双链接列表正确删除列表中的节点,它看起来应该可以工作,但不能。我做错了什么?

Java 我无法让我的双链接列表正确删除列表中的节点,它看起来应该可以工作,但不能。我做错了什么?,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

因此,我创建了一个类,它生成一个通用的双链表。问题是测试人员文件一直在说我做了一些不正确的事情。看起来它在删除测试的节点部分时开始出现问题

这是测试仪的删除部分

原始数字为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 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;

    }
}