我觉得我非常相信我在这段代码中是正确的。从逻辑上讲,这对我来说很合理,但由于某种原因,程序拒绝跑过某个点。我应该这样做,而不使用专有类或哈希表。我的列表节点是一个基本的单向链表。假设我最初有一个虚拟列表,0,我可以将一个数字添加到列表中,但仅此而已。这是除了添加第一个数字之外无法使用的方法。在java中插入一个数字并保留它的排序
假设我的名单是0 - > 2。和我试图加1
public void insert(int newElement) {
List marker = head;
List temp = new List(newElement, null);
if (head.next == null) {
head.next = temp;
} else {
while (marker.next != null) {
if (newElement < marker.next.value) {
temp.next = marker.next;
marker.next = temp;
marker = marker.next;
}
}
}
}
如果你的头5然后加0会发生什么,你会得到5-> 0 –
列表,以便马上蝙蝠我能想到的是不与您的代码工作的情况。您不会考虑插入的节点可能小于头部。这立即意味着您的列表变为未分类。解决这个问题,如果你有更多的问题回来问这些问题。 – Jay
如果有帮助,这完全是您的逻辑问题,而不是与Java本身有关的微妙或错误。还没有提到的一些直接问题是,如果'newElement> = marker.next.value','while'循环永远不会结束,并且一个元素可能被尝试插入多次,因为它在完成一次后不会停止。 –