我覺得我非常相信我在這段代碼中是正確的。從邏輯上講,這對我來說很合理,但由於某種原因,程序拒絕跑過某個點。我應該這樣做,而不使用專有類或哈希表。我的列表節點是一個基本的單向鏈表。假設我最初有一個虛擬列表,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'循環永遠不會結束,並且一個元素可能被嘗試插入多次,因爲它在完成一次後不會停止。 –