有什么办法可以在链表中编辑特定节点的数据吗?我开始写一个方法:
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不出现。关于这里出错的任何提示?
答案 0 :(得分:1)
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时抛出链接列表大小的异常。并且当索引大于链接列表大小时,此代码也会抛出异常。这样的事情
答案 1 :(得分: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);
}
@MustafaAkıllı有这样的事吗?