Set(int index, E element)方法链表
Set(int index, E element) method linked list
努力使用我的设置方法,该方法应将列表中指定索引处的元素替换为指定元素,return 先前位于指定索引处的元素。我不确定一切是否正确,但我的问题是我最终会 return 什么?
public E set(int index, E element) throws IndexOutOfBoundsException {
if (index < 0) {
throw new IndexOutOfBoundsException();
}
if (index >= size) {
throw new IndexOutOfBoundsException();
}
Node newNode = new Node(element);
Node tempNode = head;
for (int i = 1; i < index; i++) {
tempNode = tempNode.getmNextNode();
}
newNode.setmNextNode(tempNode.getmNextNode().getmNextNode());
tempNode.setmNextNode(newNode);
return ;
}
我的节点class:
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;
}}
实际上您不需要创建新节点(例如代码中的 newNode)。您可以转到指定索引的所需节点,然后您可以替换元素。
public E set(int index, E element) throws IndexOutOfBoundsException {
if (index < 0) {
throw new IndexOutOfBoundsException();
}
if (index >= size) {
throw new IndexOutOfBoundsException();
}
int i = 0;
Node tempNode = head;
while (i < index)
{
tempNode = tempNode.getmNextNode();
i++;
}
E previousElement = tempNode.getmElement();
tempNode.setmElement(element);
return previousElement;
}
努力使用我的设置方法,该方法应将列表中指定索引处的元素替换为指定元素,return 先前位于指定索引处的元素。我不确定一切是否正确,但我的问题是我最终会 return 什么?
public E set(int index, E element) throws IndexOutOfBoundsException {
if (index < 0) {
throw new IndexOutOfBoundsException();
}
if (index >= size) {
throw new IndexOutOfBoundsException();
}
Node newNode = new Node(element);
Node tempNode = head;
for (int i = 1; i < index; i++) {
tempNode = tempNode.getmNextNode();
}
newNode.setmNextNode(tempNode.getmNextNode().getmNextNode());
tempNode.setmNextNode(newNode);
return ;
}
我的节点class:
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;
}}
实际上您不需要创建新节点(例如代码中的 newNode)。您可以转到指定索引的所需节点,然后您可以替换元素。
public E set(int index, E element) throws IndexOutOfBoundsException {
if (index < 0) {
throw new IndexOutOfBoundsException();
}
if (index >= size) {
throw new IndexOutOfBoundsException();
}
int i = 0;
Node tempNode = head;
while (i < index)
{
tempNode = tempNode.getmNextNode();
i++;
}
E previousElement = tempNode.getmElement();
tempNode.setmElement(element);
return previousElement;
}