【发布时间】:2013-11-30 04:09:34
【问题描述】:
当我不使用“insertBefore”方法时,它只是正常打印出链表,就像它应该做的那样。但是当我尝试使用 insertBefore 方法时,它确实适用于第一部分,但它会继续打印链接列表,就好像它永远持续下去一样,
例如:
在打印出之前没有插入“我的测试::::
头 -> 3 -> 2 -> 1 -> 4 -> ||| "
但是当我使用 insertBefore 并打印出来时,它会打印出来
头部 ->3 -> 4 -> 2 -> 1 -> 4 -> 2 -> 1 -> 4 -> 2 -> 1 -> 4 -> 2 -> 1 -> 4 -> 2 - > 1 -> 4 -> 它会一直持续下去
这里是 insertBefore 方法
private boolean insertBefore(Node aNode, Node beforeNode)
{
Node currentNode;
Node prevNode;
//aNode= new Node();
currentNode = this.getHead();
while(currentNode!=null && currentNode.getNext()!=aNode)
{
if(currentNode == beforeNode)
{
prevNode = this.getPrevious(beforeNode);
prevNode.setNext(aNode);
aNode.setNext(beforeNode);
//aNode.setNext(currentNode);
return true;
}
currentNode = currentNode.getNext();
}
currentNode.setNext(beforeNode);
return false;
}
insertBefore 方法确实完成了它的工作,但是它使链接列表永远继续存在,我想知道为什么
【问题讨论】:
-
我没有看到你在任何地方更新
currentNode中的上一个节点链接,也没有看到你更新aNode中的下一个节点链接。
标签: java function methods linked-list