gpt4 book ai didi

java - LinkedList 在索引处删除 java

转载 作者:行者123 更新时间:2023-12-01 18:05:44 25 4
gpt4 key购买 nike

我从头开始创建了一个删除方法,用于从指定索引处的链表中删除节点。

它没有删除正确的节点。我尝试在 Eclipse 中使用调试器单步执行,但无法发现问题。

每个节点都包含一个 token 。我已经包含了 Token 类、Node 类。我已在 List 类中编写了我的方法,并包含了一个 Test 类。

remove 方法当前正在删除指定索引旁边的节点。我怎样才能让它发挥作用?对于这么长的帖子,我深表歉意。

public class thelist{

public Node head;

public List() {
head = null;
}

public Node remove(int index) {
Node node= head;
for (int i = 0; i < index; i++) {
node= node.next;
}
node.next = node.next.next;
return node;
}

最佳答案

问题是,一旦到达正确的索引,您将删除 NEXT 节点,而不是索引处的节点。一旦找到正确的节点,您可以将ref.previous.next设置为ref.next;因此,删除ref

public Token remove(int index) {
if (index<0 || index >=size()) {
throw new IndexOutOfBoundsException();
}
Node ref = head;
for (int i = 0; i < index; i++) {
ref = ref.next;
}
if (index == 0) {
head = ref.next;
} else {
ref.previous.next = ref.next;
}
size--;
return ref.getObject();
}

关于java - LinkedList 在索引处删除 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36577328/

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