我试图删除一个给定索引的节点,但我一直在测试失败,有时甚至得到一个NullPointerException
。这是我到目前为止所做的:
public void remove(int pos)
{
if (head == last)
{
head = null;
last = null;
}
if (pos == size - 1)
return removeLast();
if (pos == 0)
return removeFirst();
else
{
DoubleListNode<E> current = head;
for (int i = 0; i < pos - 1; i ++)
{
current = current.getNext();
}
current.setNext(current.getNext().getNext());
current.getNext().getNext().setPrev(current);
return current.getData();
}
}
从双向链表中删除的步骤:
让要删除的节点是del。
记住,在这里你必须保持前一个和下一个指针同时处理双方的空状态。