Java 从双链表中删除索引处

Java 从双链表中删除索引处,java,doubly-linked-list,Java,Doubly Linked List,如果有帮助的话,这是课程的开始。我正在尝试编写一个方法,从双链接列表中的特定索引中删除一个元素。我不确定我是否走在正确的道路上,但这就是我所做的,我在以下位置得到了一个NullPointerException: prevNode.next=nextNode public class DoublyLinkedList { Node start; Node end; int length; public DoublyLinkedList() { this.start

如果有帮助的话,这是课程的开始。我正在尝试编写一个方法,从双链接列表中的特定索引中删除一个元素。我不确定我是否走在正确的道路上,但这就是我所做的,我在以下位置得到了一个NullPointerException:

prevNode.next=nextNode

public class DoublyLinkedList {
    Node start;
    Node end;
    int length;

public DoublyLinkedList() {
    this.start = null;
    this.end = null;
    this.length = 0;
}


public void removeAtIndex(int index) {
    Node currentNode = start;

    for (int i = 0; i < index; i++) {
        if (index < 0 || index > length) {
            System.out.println("The index is out of bounds");
            return;
        } else if (currentNode == null) {
            System.out.println("The list is empty");
            return;
        } else if (i == index - 1) {
            Node nextNode = currentNode.next;
            Node prevNode = currentNode.prev;
            prevNode.next = nextNode;
            nextNode.prev = prevNode;
            return;
        }
        currentNode = currentNode.next;
    }
}
公共类双链接列表{
节点启动;
节点端;
整数长度;
公共双链接列表(){
this.start=null;
this.end=null;
这个长度=0;
}
公共无效删除索引(整数索引){
节点当前节点=开始;
对于(int i=0;i长度){
System.out.println(“索引超出范围”);
返回;
}else if(currentNode==null){
System.out.println(“列表为空”);
返回;
}else if(i==索引-1){
Node nextNode=currentNode.next;
节点prevNode=currentNode.prev;
prevNode.next=nextNode;
nextNode.prev=prevNode;
返回;
}
currentNode=currentNode.next;
}
}

对于您的流,它返回null,因为currentNode最初为null。
让我们看看你的代码。(我猜你已经开始编程了,右边:p)

  • 从for中移出check IndexOutOfBounds,此处与for循环无关
  • 您的想法是通过设置链接到下一个节点的pre-node来删除i处的项,这很好,我看到您的代码很好
  • 我希望您已经实现了addNode以增加长度,因为它不会进入for循环

  • 再一次,检查您的代码并澄清您的想法。许多返回都不是很好。

    您的完整代码在哪里?我有一个类似的问题,您认为您可以帮助我解决吗。我一直在互联网上到处搜索,通过我的书,但我一无所获。