从双重链接列表中删除光标



我试图从列表中删除光标,并将其引用到先前的carlistnode(或者头部,如果光标先前引用了列表的头部)。同时仍在光标内返回信息。我的代码无法正确删除光标。我的代码中有什么问题?

这是我当前的代码:

public Fruit removeCursor() throws EndOfListException {
    if (cursor == null) {
        throw new EndOfListException();
    } else if (cursor.getPrev() == null) {
        head = cursor.getNext();
        cursor.setNext(null);
        cursor.setPrev(null);
        cursor = head;
    } else if (cursor.getNext() == null) {
        tail = cursor.getPrev();
        cursor.setPrev(null);
        cursor.setNext(null);
        cursor = tail;
    } else {
        cursor.setData(cursor.getNext().getData()); //this isn't a singly linked list
        cursor.setNext(cursor.getNext().getNext());
    }
    count--;
    return cursor.getData();
}

您的else子句不"删除光标" ...

尝试这样的事情:

else {
    cursor.getPrev().setNext(cursor.getNext());
    cursor.getNext().setPrev(cursor.getPrev());
    // You might want to release the cursor's item, EG:
    cursor = null;
    cursor = cursor.getNext();
}

最新更新