Я пытаюсь создать пузырьковую сортировку в двусвязном списке на Java, но получаю ошибки исключения нулевого указателя. Я считаю, что это проблема, когда я вызываю метод getPrevious для головы, который, конечно, имеет значение null. Однако я не могу придумать, как выполнить пузырьковую сортировку без доступа к методу 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();
}
}
}