下面的迭代器类返回除第一个之外的所有元素,并且它返回的最后一个元素为null。我不确定如何修复它,以便它只返回所有没有空值的元素。
答案 0 :(得分:1)
下面
newHead = newHead.next;
...
return (E) newHead;
移动到下一个元素,然后返回其内容。实际上,您总是跳过列表的第一个元素。反之亦然(使用临时变量):
MyListNode<E> current = newHead;
newHead = newHead.next;
...
return (E) current;
答案 1 :(得分:0)
在下一个方法中返回null。
调用迭代器时,可以在使用next之前使用hasNext方法检查。这样就不应该在最后添加额外的空值。
while(iterator.hasNext()){
//add to list
}