gpt4 book ai didi

java - Set(int index, E element)方法链表

转载 作者:行者123 更新时间:2023-12-02 08:58:45 26 4
gpt4 key购买 nike

与我的设置方法作斗争,该方法应将列表中指定索引处的元素替换为指定元素,并返回先前位于指定索引处的元素。我不确定一切是否正确,但我的问题是我最终会返回什么?

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

我的节点类:

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

关于java - Set(int index, E element)方法链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60328477/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com