0
我想在Java中的雙向鏈接列表上創建一個冒泡排序,但我得到空指針異常錯誤。我相信當我在head上調用getPrevious方法時會遇到問題,當然這個方法的值爲null。然而,我想不出如何在沒有訪問其他節點的getPrevious方法的情況下進行冒泡排序。泡沫排序雙向鏈接列表Java
我可以實現一個if語句來檢查它的頭部或尾部的第一個,但我覺得有一個更聰明的方法來做到這一點。
我也一直無法運行這個成功的構建,所以我甚至不知道代碼將工作。如果你對如何實現這個有不同的想法,請告訴我。
歡迎任何建議!
public static void bubbleSort(DoubleLinkedList list) //static method used to sort the linked list using bubble sort
{
int i = 0;
int j = 0;
Node currentNode = list.head;
Node previousNode = currentNode;
Node tempNext = currentNode;
Node tempPrevious = currentNode;
for(i=0; i<list.getSize(); i++)
{
for(j=0; j<list.getSize()-1; i++)
{
if(currentNode.getData() > currentNode.getNext().getData())
{
tempNext = currentNode.getNext().getNext();
tempPrevious = currentNode.getPrevious();
currentNode.getPrevious().setNext(currentNode.getNext());
currentNode.getNext().setNext(currentNode);
currentNode.setPrevious(currentNode.getNext());
currentNode.setNext(tempNext);
}
currentNode = currentNode.getNext();
}
}
}
我以前見過這個解決方案,但我不同意,並認爲這是可行的,如果節點會說... 3,4,5領域。 – Rabiees