【发布时间】:2016-01-17 12:28:13
【问题描述】:
我的循环链接列表的删除方法有问题。它只执行 if 语句。我究竟做错了什么?我该如何解决这个问题? 在循环链表中,您只需要跟踪指向最后一个元素的第一个元素
public void remove()
{
Node currNode = first;
Node prevNode = null;
if(first != null)
{
if(currNode.getNext() == first)
{
first = null;
}
}
else
{
prevNode = currNode;
currNode = currNode.getNext();
}
}
class Node
{
private int data;
private Node next;
public Node(int data, Node next) {
this.data = data;
this.next = next;
}
public int getData() {
return data;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}
【问题讨论】:
-
能否分享一下Node的结构,什么是'first'?
-
以及列表在空和非空时的结构规则。
-
第一个是第一个节点
-
我怀疑
else子句属于嵌套的if,而不是外部的。 -
是的,我昨天看到了。已经修复了
标签: java linked-list circular-list