【发布时间】:2012-10-26 19:27:34
【问题描述】:
我正在尝试创建一个将节点添加到我的链接列表的方法。该方法需要一个 int(指定新链接应该去哪里)和 String(因为我的链表包含字符串)。我写了一些我认为会在我的列表中的特定点添加一个链接的代码,但是当我在假设添加一个新节点之后打印我的列表时,我看到新节点尚未添加。我很惊讶,因为我在编写代码时非常小心地测试了代码的行为,并且 add 方法似乎符合我的预期——但是新打印的列表并没有反映添加新链接后的更改.谁能告诉我哪里出错了:/
ps:类和方法的名称没有争议,我的老师选择了它们,这就是它们必须保留的方式。
谢谢!
测试链表
class LinkedListTest
{
public static void main(String[] args)
{
LinkedList list = new LinkedList();
list.insertFirst("cat");
list.insertFirst("dog");
list.insertFirst("fish");
list.insertFirst("cow");
list.insertFirst("horse");
list.insertFirst("pig");
list.insertFirst("chicken");
list.add(3, "mouse");
list.print();
}
}
链表类
public class LinkedList
{
private Link first;
public LinkedList()
{
first = null;
}
public void insertFirst(String word)
{
Link link = new Link(word);
link.next = first;
first = link;
System.out.print(first.item + " ");
}
public String deleteFirst()
{
Link temp = first;
first = first.next;
return temp.item;
}
public String get(int index)
{
Link current = first;
while (index > 0)
{
index--;
current = current.next;
}
return current.item;
}
public void add(int index , String someString)
{
Link current = first;
while (index>0)
{
index--;
current = current.next;
}
Link newLink = new Link(someString);
newLink.next = current;
current = newLink;
}
public void print()
{
System.out.println("-----------PRINTING LIST------------");
Link current = first;
while(!(current==null))
{
System.out.println(current.item);
current = current.next;
}
}
}
链接类
public class Link
{
public String item;
public Link next;
public Link(String theItem)
{
item = theItem;
}
}
【问题讨论】:
-
您是否遇到错误或唯一的问题是逻辑问题?
-
没有错误,所以一定是逻辑。在测试链表类中,您可以看到我尝试在位置 3 添加鼠标....但是当我在添加鼠标后打印列表时,列表不包含鼠标...它只是打印列表的最后一个版本好像我从来没有添加任何新东西一样。
标签: java linked-list