我正在学习Java中的链表,并且第一个元素被注册两次时遇到问题。如何解决此问题。这是我的代码:
if (head==null) {
head=new Node(data);
}
Node current=head;
while(current.getNext()!=null) {
current=current.getNext();
}
current.setNext(new Node(data));// how to change this line
}
答案 0 :(得分:0)
在pastebin中,此代码段是“插入”功能的一部分。 因此,在代码段中,您正在研究“如果我的LinkedList为空怎么办?->列表中没有元素->没有头
如果是这种情况,您只想将新数据作为新的节点(数据)添加到空列表中即可。
但是现在您正在做的是:您正在为一个空列表创建一个新的Node,将该Node设置为Head并仅通过一个元素遍历一个列表。实际上,这意味着您永远不会进入while循环。之后,您将添加一个节点,该节点具有与Head相同的数据作为后继。
答案 1 :(得分:0)
您应该在添加第一个元素之后添加return。
if (head==null) {
head = new Node(data);
return;
}
我从链接中获取了代码。