从给定位置的索引中删除节点

时间:2020-12-22 18:13:33

标签: java nodes remove

我需要在给定的点从 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;
        }

    }

1 个答案:

答案 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;
    }
}