gpt4 book ai didi

java - 将元素插入到已排序的链表中

转载 作者:太空宇宙 更新时间:2023-11-04 13:49:51 25 4
gpt4 key购买 nike

我正在创建一个函数,以正确的顺序将元素插入到链接列表中,而无需重新排序列表。这是我的代码:

public void insert(E e) {
if (e == null)
throw new NullPointerException();

if (head == null) {
head = new Node(e, null);
count++;
} else {
Node current = head;

for (current = head; current != null ;){
if(current.item.compareTo(e) > 0){
Node temp = current;
current = new Node(e, null);
current.next = temp;
break;
}else{
current = current.next;
}
}
}
}

我不确定出了什么问题,但是当我打印出来时,它只打印出第一个元素。我是否以某种方式没有链接到头节点?我想要它,所以如果它查看列表,一旦发现比它大的项目,它就会占据该位置,并且较大的项目会跳到下一个。链表构造函数已在列表外部创建。

最佳答案

当您将新元素插入列表时,前一个元素的 next 引用不会被设置:

if(current.item.compareTo(e) > 0){
Node temp = current;
current = new Node(e, null);
current.next = temp;
break;
}else
\\...

因此,第一个列表元素的 next 将始终指向 null,实际上使列表除第一个元素之外为空。

<小时/>

如果列表不为空并且每个列表元素的此条件为 false,则您甚至永远不会尝试插入元素:

if(current.item.compareTo(e) > 0){

关于java - 将元素插入到已排序的链表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30418398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com