不清楚为什么 "start" 是第 1 行的 assigned/gives 引用

Not clear why "start" is assigned/gives reference at line 1

这是单链表实现的问题

比如说,定义了一个classNode。 现在,为操作定义了另一个 class LinkedList。我们将在起始位置添加元素。

class LinkedList {
    protected Node start;
    protected Node end;
    public int size;

    public LinkedList() {
        start = null;
        end = null;
        size = 0;
    }

    //method for insert at start
    public void insertAtStart(int value) {
        Node nptr = new Node (value, null);
        size++;

        if (start == null) {
            start = nptr;
            end = start; //Line 1
        }
    }

    // others method(omitted here)
}

我在想,如果我们在第1行中将nptr自身赋值给end会怎么样?我在那个问题上不清楚。

在这种情况下,应仅在首次调用 insertAtStart(int val) 时更新结束引用变量,以维护对结束节点的引用。

如果您在第 1 行中将 nptr 本身分配给 end,则结束引用变量将引用新添加的节点(即列表的第一个节点)。

这一行之后:

start = nptr;

变量 start 引用 保存到与 nptr 相同的对象,即在以下期间创建的对象:

Node nptr = new Node (value, null);

因此调用 end = startend = nptr 并不重要,因为 end 之后将包含相同的引用; nptrendstart 都将指向同一个对象。