是否可以在链表中编辑特定节点的数据?我开始写一个方法:
public void edit(int index, String data) {
Node pre = head;
Node temp = null;
for(int i=1; i <= index; i++) {
temp = pre;
pre = pre.next();
}
temp.next(new Node(data));
pre.data(data);
}
我的列表中有四个节点,我使用此方法编辑列表中索引1处的节点,但是现在当我打印出列表中的所有元素时,它只显示索引0和1处的节点,并且2-3不出现。这里有什么问题吗?
public void edit(int index, String data) {
Node pre = head;
Node temp = null;
for(int i=1; i <= index; i++) {
temp = pre;
pre = pre.next();
}
Node newNote = new Node(data);
temp.next = newNote;
newNote.next = pre.next;
}
你还应该处理一些特殊的情况。例如:这段代码对index = 0不起作用。当链表大小为0时,此代码抛出异常。当索引大于链表大小时,此代码也会抛出异常。诸如此类的
public void edit(int index, String data) {
if (index==0) {
head.data(data);
return;
}
if (index < 0 || index > size()) {
throw new IndexOutOfBoundsException("Index out of bounds.");
}
Node pre = head;
Node temp = null;
for(int i=1; i <= index; i++) {
temp = pre;
pre = pre.next;
}
Node newNode = new Node(data);
temp.next(newNode);
newNode.next(pre.next);
}
@Mustafa Akıllı像这样的东西?