我需要在给定的点从 Java 中的简单链表中删除节点。 “public void remove(int index){} 方法是我有这样挣扎的方法。这是大学的任务。我已经坐在这个算法的问题前面很长一段时间了现在,但不幸的是我无法想出一个解决方案。我只了解代码理论上必须做什么:删除给定索引处的元素并将以下元素设置为前一个节点的“下一个”。
private Node head = null;
private class Node {
T data = null;
Node next = null;
}
@Override
public void remove(int index) {
Node temp = head;
Node prev = null;
for (int i = 0; i < index; i++) {
prev = temp;
temp = temp.next;
if (i == (index)) {
temp = prev;
}
}
if (index == 0) {
temp = null;
}
}
答案 0 :(得分:0)
假设链表设置正确...
public void remove(int index)
{
Node found = head, prev = null;
for (int i = 0; i < index && found != null; i++) {
prev = found;
found = found.next;
}
if (found == null) return;
if (prev == null) {
head = found.next;
}
else {
prev.next = found.next;
}
}