我现在正在学习链表,但我很快就陷入了困境。 我正在读讲师的代码,有一种我不太懂的方法。
public class List {
public Item start = null;
private class Item {
private int value;
private Item next;
private Item (int x, Item item) {
value = x;
next = item;
}
}
public void insertAfter(Item item, int x) {
if (item == null) {
start = new Item(x, start);
} else {
item.next = new Item(x, item.next);
}
}
public Item findValue(int x) {
Item p = start;
while (p != null && p.value != x) {
p = p.next;
}
return p;
}
说我有一个清单L. 9-&将7-将5-将4-&将7->空 使用方法项
L.findValue(7);
返回节点7-> 5-> 4-> 7-> null
然后我用
L.insertAfter(item, 100);
为什么列表现在变成了 9-&将7-> 100-将5-将4-&将7->空?????
我在这里看到的问题是void方法不修改起始节点,而是“item”,它只是输入。 我以为我只会修改“项目”..
我在这里错过了什么????