Javaで二重にリンクされたリンクリストにバブルソートを作成しようとしていますが、NullPointerExceptionエラーが発生します。もちろん値がnullであるヘッドでgetPreviousメソッドを呼び出すと、問題が発生すると思います。ただし、他のノードのgetPreviousメソッドにアクセスせずに、バブルソートを実行する方法を考えることはできません。
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();
}
}
}