Java 链表addLast方法
如何在Java中构建Java 链表addLast方法,java,linked-list,add,Java,Linked List,Add,如何在Java中构建addLast方法?我已经知道,LinkedList有一个内置的方法可以实现这一点) 这就是我尝试过的: public void addFirst(int d1, double d2) { Link link = new Link(d1, d2); link.nextLink = first; first = link; } public void addLast(int d1 , double d2){ Link v =
addLast
方法?我已经知道,LinkedList
有一个内置的方法可以实现这一点)
这就是我尝试过的:
public void addFirst(int d1, double d2) {
Link link = new Link(d1, d2);
link.nextLink = first;
first = link;
}
public void addLast(int d1 , double d2){
Link v = new Link(d1, d2);
v.nextLink = null;
tail.nextLink = v;
tail = v
}
我的addFirst
方法有效,但我不知道如何连接它们
大体上:
LinkList list = new LinkList();
list.addFirst(4, 4.04);
list.addFirst(5, 5.05);
list.addlast(3,4.5);
list.printList();
您的问题似乎在最后一行。你想要
tail = v;
不是
此外,你有
tail = link
作为addFirst方法的最后一行-不清楚为什么要这样做。您不需要在将列表添加到前面时更新列表的尾部。您的问题似乎出现在最后一行。你想要
tail = v;
不是
此外,你有
tail = link
作为addFirst方法的最后一行-不清楚为什么要这样做。您不需要在添加到前面时更新列表的尾部。我意识到这是一项学校作业,因此在不给出答案的情况下,以下是要遵循的步骤:
此外,上面的addFirst方法不可能奏效,因为您一直在重置尾部的值。我意识到这是一项学校作业,因此在不给出答案的情况下,以下是要遵循的步骤:
public void addLast(int d1, double d2){
Node node = new Node(d1, d2);
Node temp = first;
while(temp.next!= null) {
temp = temp.next;
}
temp.next = node;
}
此外,上面的addFirst方法无法工作,因为您一直在重置尾部的值。不清楚为什么会出现这种情况。也许你应该更新原来的帖子,加入你的新代码?是的,PFHayes更正应该可以。如果您的测试代码仍然返回false,那么测试代码或代码的另一部分中可能存在错误。似乎列表的尾部实际上不是列表中的条目。实际上,您现在所做的是维护两个独立的链表,一个从开头开始,另一个从结尾结束。您需要的是添加代码,当您向空列表中添加一个项目时,first和tail都将初始化为该项目。不清楚为什么会出现这种情况。也许你应该更新原来的帖子,加入你的新代码?是的,PFHayes更正应该可以。如果您的测试代码仍然返回false,那么测试代码或代码的另一部分中可能存在错误。似乎列表的尾部实际上不是列表中的条目。实际上,您现在所做的是维护两个独立的链表,一个从开头开始,另一个从结尾结束。您需要添加的代码是,当您向空列表中添加一个项目时,first和tail都将初始化为该项目。在列表末尾添加一个元素时,不需要迭代所有元素。他有尾部引用…让我重新表述一下,他没有做足够的检查来证明尾部引用曾经在他的方法中设置过。在将元素添加到列表末尾时,没有必要迭代所有元素。他有尾部引用…让我重新表述一下,他没有做足够的检查来证明尾部引用曾经在他的方法中设置过。
public void addLast(int d1, double d2){
Node node = new Node(d1, d2);
Node temp = first;
while(temp.next!= null) {
temp = temp.next;
}
temp.next = node;
}