Сортировка двусвязного списка с пузырьковой сортировкой - PullRequest
0 голосов
/ 30 сентября 2019

Мой код должен сортировать двусвязный список Integer, но я получаю эту ошибку:

Exception in thread "main" java.lang.NullPointerException 
    at Ex_1.BubbleSortForDLL(Ex_1.java:26)
    at Ex_1.main(Ex_1.java:10)

Вот мой код:

public static <E> void BubbleSortForDLL(DoublyLinkedList.Node<E> head){
    int j;
    boolean flag = true; // set flag to true to begin first pass
    DoublyLinkedList.Node<E> temp = head;
    DoublyLinkedList.Node<E> placeHolder = head;
    while(flag){
        int i = 1;
        flag= false; //set flag to false awaiting a possible swap
        DoublyLinkedList.Node<E> firstNode = placeHolder;
        DoublyLinkedList.Node<E> secondNode = firstNode.getNext();

        while(secondNode != null){  

            int first = (int)firstNode.getElement();
            int second = (int)secondNode.getElement();
            if (first > second){ 
                if(i == 1)
                    placeHolder = secondNode;
                firstNode.getPrev().setNext(secondNode);
                secondNode.getNext().setPrev(firstNode);
                firstNode.setNext(secondNode.getNext());
                secondNode.setPrev(firstNode.getPrev());
                firstNode.setPrev(secondNode);
                secondNode.setNext(firstNode);
                flag = true; //shows a swap occurred
            }
            firstNode = firstNode.getNext();
            secondNode = firstNode.getNext();
            i++;
        }
    }
}
...