我有一個雙向鏈表,它看起來像:如何遍歷雙向鏈表
null 1 2 3 null
當我遍歷使用下面的代碼中,輸出打印完全是一個迭代器列表上面寫的是什麼。
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錯誤,但我找不出如何解決它。我的猜測是我得到這個錯誤,因爲當我到達第二個空虛擬節點時,我嘗試跳過它,但沒有其他節點可以跳轉到。
我的問題是,我怎樣才能改變我的代碼,以便它打印每個元素在雙向鏈表,同時跳過兩個空的虛擬節點?
值的測試,以避免在打印指示,而不是「跳過」它。 – laune
嘗試使用'如果(VAL!= NULL)的System.out.println(VAL);' –