我正在尝试创建一种将节点添加到我的链表的方法。该方法需要一个 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;
}
}