从O(1)中的LinkedList中删除元素

时间:2016-04-26 05:24:25

标签: java pointers linked-list

基本上我已经了解了我想要做的事情,因为我通常在C ++中编程,很容易实现,不知道如何在Java中做到这一点。

我要做的是:在java中将Linked的指针保存在LinkedList中,并在O(1)中删除此特定节点。

如果是C ++,我会这样做(假设我没有尝试删除最后一个节点)

void RemoveNode(Node *node) {
    node->data = node->next->data;
    node->next = node->next->next;
}

我怎么能用Java做到这一点?

1 个答案:

答案 0 :(得分:0)

除了标准LinkedList之外的O(1)移除(除了明显的头部/尾部移除)只能通过ListIterator.remove()实现,并且您必须通过它进行迭代。

您无法访问列表的内部结构,因此无法访问所有节点及其链接。