从索引给定位置删除节点

jtjikinw  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(333)

我需要从java中的一个简单链表中删除给定点上的节点。“public void remove(int index){}方法正是我与之斗争的方法。这是大学的任务。我一直坐在前面的问题,建立这个算法已经有相当一段时间了,但不幸的是,我不能想出一个解决办法。我只理解代码理论上必须做的事情:删除给定索引处的元素,并将前面节点中的下一个设置为“next”。

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

    }
hrysbysz

hrysbysz1#

假设链表设置正确。。。

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

相关问题