gpt4 book ai didi

java - 为带有虚拟 header 的单链表创建迭代器时遇到问题

转载 作者:行者123 更新时间:2023-12-02 10:11:27 25 4
gpt4 key购买 nike

class SinglyLinkedListIterator<T> implements Iterator<T> {

Node<T> current = null;

public SinglyLinkedListIterator() {
this.current = (Node<T>)header.getNext();
}
@Override
public boolean hasNext() {
return this.current.getNext() != null;
}

@Override
public T next() {
if (this.hasNext()) {
T result= null;
result = this.current.getElement();
this.current = this.current.getNext();
return result;
}
else {
throw new NoSuchElementException();
}
}

}

这是我现在拥有的代码,我遇到的问题是,当它到达最终节点时,hasNext() 条件不成立,我不知道如何使其工作,如果你们可以帮助我,我真的很感激

最佳答案

您偏离了一个节点。您将迭代器的 current 初始化为第一个节点,因此 hasNext 应该检查 current != null

关于java - 为带有虚拟 header 的单链表创建迭代器时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54975071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com