这个插图中有错吗?

时间:2015-06-04 14:27:33

标签: java data-structures linked-list singly-linked-list

在第14.2页,第620页," Big Java" (国际第4版),由Cay Horstmann,它展示了如何实现链表。 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)"?之后指向同一个对象顶部图片位于之前,底部图片位于插入之后。Before Insertion After Insertion

1 个答案:

答案 0 :(得分:1)

我认为代码看似错误,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;
            }
}

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