从双向链表java中删除索引

时间:2014-11-28 02:25:14

标签: java doubly-linked-list

如果它有所帮助,这是课程的开始。我正在尝试编写一个方法来从双向链表中的特定索引中删除一个元素。我不确定我是否正确地走在正确的道路上,但这就是我所做的,而且我得到的是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;
    }
}

1 个答案:

答案 0 :(得分:0)

使用您的流,它返回null,因为currentNode最初为null 我们来看看您的代码。 (我猜你已经开始编程了,对吧:P)

  1. 从for中移出检查IndexOutOfBounds,与此处的for循环无关。
  2. 你想通过设置链接到下一个节点的节点来删除i上的项目,没关系,我看到你的代码很好。
  3. 我希望你已经实现了 addNode 来增加长度,因为它不会进入for循环。
  4. 再次检查您的代码并清除您的想法。许多回报并不是很好。