在实现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 ;
}
我的Node类:
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;
}}
最佳答案
您可以这样尝试:tempNode.setmNextNode(tempNode.getmNextNode().getmNextNode());