链接列表,在节点后添加值

时间:2015-04-18 07:22:02

标签: linked-list

我现在正在学习链表,但我很快就陷入了困境。 我正在读讲师的代码,有一种我不太懂的方法。

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”,它只是输入。 我以为我只会修改“项目”..

我在这里错过了什么????

0 个答案:

没有答案