gpt4 book ai didi

java - 遍历双向链表时如何跳过空虚拟节点

转载 作者:行者123 更新时间:2023-12-01 10:51:34 25 4
gpt4 key购买 nike

我有一个双向链表,如下所示:


1
2
3

当我使用迭代器和下面的代码遍历列表时,输出将准确打印上面所写的内容。

            Iterator<Integer> it = lst.iterator(); // tests iterator method
while (it.hasNext()) {
Integer val = it.next();

System.out.println(val);
}

但是,我想在遍历列表时跳过空节点,以便它只打印:

1
2
3

我无法让我的代码做到这一点。这是我到目前为止所想到的。

            Iterator<Integer> it = lst.iterator(); // tests iterator method
while (it.hasNext()) {
Integer val = it.next();
if (val == null)
it.next()

System.out.println(val);
}

问题是我收到 NoSuchElementException 错误,但我不知道如何修复它。我的猜测是我收到这个错误,因为当我到达第二个空虚拟节点时,我尝试跳过它,但没有其他节点可以跳转到。

我的问题是,如何更改我的代码,以便它打印双向链表中的每个元素,同时跳过两个空虚拟节点?

最佳答案

您所要做的就是将测试与 println 结合使用:

while (it.hasNext()) {
Integer val = it.next();
if (val != null){
System.out.println(val);
}
}

如果您在循环中执行额外的 next,则会跳过一个 hasNext,这就是您遇到异常的原因。

关于java - 遍历双向链表时如何跳过空虚拟节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33852213/

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