0

remove(int index)在实现一个应该删除列表中指定索引处的元素的方法时,我遇到了一些问题。我的第一个问题是如何将任何后续元素向左移动并从它们的索引中减去一个。我试过了

Node.getmNextNode() = tempNode.getmNextNode().getmNextNode();

但这是不正确的。我的第二个问题是如何在最后返回指定索引处的元素。

public E remove(int index) throws IndexOutOfBoundsException {
    if (index < 0 || index >= size) {
        throw new IndexOutOfBoundsException();
    } else if (index == 0) {
        remove(0);
    } else {
        Node<E> tempNode = head;
        for  (int i = 0; i < index - 1; i++) {
            tempNode = tempNode.getmNextNode();
        }
        Node.getmNextNode() = tempNode.getmNextNode().getmNextNode();
        size--;
    }
    return ;
}

我的节点类:

public class Node<E> {
private E mElement;
private Node<E> mNextNode;

Node(E data) {

    this.setmElement(data);
}
public E getmElement() {
    return this.mElement;
}
public void setmElement(E element) {
    this.mElement = element;
}
public Node<E> getmNextNode()
{
    return this.mNextNode;
}
public void setmNextNode(Node<E> node)
{
    this.mNextNode = node;
}}
4

1 回答 1

0

你可以这样尝试:

tempNode.setmNextNode(tempNode.getmNextNode().getmNextNode());

于 2020-02-20T18:46:50.430 回答