我已經得到的數據結構如下:檢查空進入無限循環
[對象] - > [對象] - > [對象]
每個對象具有右指針到另一個。
while (currentParcel.getRight() != null) {
currentParcel = currentParcel.getRight();
}
此代碼進入無限循環。
按照我的邏輯,它應該儘可能地正確,只有當它到達null時,currentParcel對象應該是指向null的最後一個對象(沒有對象到右邊)。
我該如何解決無限循環?
我試着寫它在以下方式:
boolean found = false;
try {
while (found == false) {
currentParcel = currentParcel.getRight();
if (currentParcel.getRight() == null)
{
currentParcel.addRight(p);
System.out.println(currentParcel);
found = true;
}
}
}
catch (NullPointerException e) {}
但它沒有爲我工作。它根本沒有儘可能地向右轉。
你是否檢查過鏈接列表本身?你可能有一個循環鏈表。此外,你永遠不應該抓到一個NPE。 – 2013-05-02 22:51:30
當然不是循環的。我在這裏沒有使用鏈表。簡單實現上面描述的對象中的數據結構。 – 2013-05-02 22:56:04
您可能沒有使用核心Java LinkedList類,但是您已經創建了自己的鏈接列表數據結構,並且在您說「它不是肯定的循環」之前,最好檢查它。在你掌握瞭解決方案之前,不要忽視任何可能的問題原因。 – 2013-05-02 22:57:28