这个插图有错误吗?

Is there a mistake in this illustration?

在 Cay Horstmann 的 "Big Java"(国际第 4 版)第 14.2 章第 620 页中,展示了如何实现链表。 listIterator 的 add 方法如下所示:

public void add(Object element) {
            if(position == null) {
                addFirst(element);
                position = first;
            } else {
                Node newNode = new Node();
                newNode.data = element;
                newNode.next = position.next;
                position.next = newNode;
                position = newNode;
            }
            previous = position;
}

相应的插图看起来像我在下面添加的那个。第一个在添加 "newNode" 之前,第二个在添加之后。谁能告诉我第二张图片是否有错误。在调用 "add(Object element)" 之后,字段 "previous" 和 "position" 不应该指向同一个对象吗?上图是插入前,下图是插入后

在我看来,代码似乎是错误的,previous 应该设置为 position 它实际上被更改之前。

像这样:

public void add(Object element) {
            previous = position;
            if(position == null) {
                addFirst(element);
                position = first;
            } else {
                Node newNode = new Node();
                newNode.data = element;
                newNode.next = position.next;
                position.next = newNode;
                position = newNode;
            }
}

这将符合第二张图片的预期结果