我已经得到的数据结构如下:检查空进入无限循环
[对象] - > [对象] - > [对象]
每个对象具有右指针到另一个。
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