gpt4 book ai didi

java - 如何从链表中删除指定节点?

转载 作者:行者123 更新时间:2023-12-02 03:39:12 24 4
gpt4 key购买 nike

我创建了一个删除方法,可以从单链表中删除对象。

到目前为止,该方法删除第一个节点和第二个节点没有出现问题。当删除第三个节点及之后的节点时,该方法将删除指定节点和头节点之间的所有内容。我的问题是如何让我的方法删除指定的节点而不是它之前的所有内容?

我知道我需要保留对前一个节点的引用,以便将其下一个节点分配给指定的下一个节点。这将缩小间隙并删除节点。我明白逻辑,但似乎无法实现。

public class List_test{
public Node head;
public List(){
head = null;
}
public List(Node head_) {
this.head = head_;
Node ref = head;
}
public void remove(Node node) {
Node ref= head;
if (ref.equals(node)) {
head = head.next;
return;
}
while (ref != null) {
if (ref.equals(node)) {
head.next = node.next;
}
ref = ref.next;
}
}
public static void main(String[] args) {
new List_test();
}

最佳答案

为了删除一个节点,为什么要改变头指针?您应该使用前一个节点并将其指向要删除的节点的下一个节点。

关于java - 如何从链表中删除指定节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37042028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com