Excepción Ptr nula con Bubble Sort en Java

Recibo una excepción de puntero nulo antes de que pueda acceder a mi código. No puedo decir si funcionará correctamente porque no puedo hacer que pase este punto.

El error se arroja en esta línea:

if(currentNode.getData() > currentNode.getNext().getData())

Aquí está mi tipo de burbuja:

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=1; i<list.getSize(); i++)
          {
              for(j=0; j<list.getSize()-1; j++)
              {
                  if(currentNode.getData() > currentNode.getNext().getData())
                  {
                      if(currentNode == list.head)
                      {
                          Node tempNode = currentNode.getNext();

                          list.head = tempNode;
                          tempNext = tempNode.getNext();

                          tempNode.setNext(currentNode);
                          currentNode.setNext(tempNext);
                          currentNode.setPrevious(tempNode);

                          tempNext.setPrevious(currentNode);
                      }
                      else if(currentNode.getNext() == list.last)
                      {
                          Node tempNode = currentNode.getNext();
                          list.last = currentNode;
                          tempPrevious = currentNode.getPrevious();

                          tempNode.setNext(currentNode);
                          tempNode.setPrevious(tempPrevious);

                          currentNode.setPrevious(tempNode);
                      }
                      else
                      {
                          Node tempNode = currentNode.getNext();
                          tempPrevious = currentNode.getPrevious();
                          tempNext = currentNode.getNext();

                          tempPrevious.setNext(tempNode);
                          tempNext.setPrevious(currentNode);

                          currentNode.setNext(tempNext);
                          tempNode.setPrevious(tempPrevious);
                      }

                  }

                  currentNode = currentNode.getNext();

              }
          }



      }

Pensé que los límites en mis bucles evitarían que el compilador intente acceder a un puntero que no existe necesariamente, que es lo que entiendo que es una excepción de puntero nulo.

Si alguien pudiera ayudarme a superar este error para poder probar mi tipo de burbuja, ¡estaría extremadamente agradecido!

Respuesta 1

O currentNodees nulo o currentNode.getNext()devuelve nulo y es por eso que no puede invocarlo getData(). Siempre debe verificar sus nodos para valores nulos antes de usarlos.

Respuesta: 2

Suponga que estoy ejecutando un proceso y quiero redirigir sus secuencias mediante la técnica clásica: ProcessBuilder pb = new ProcessBuilder ("C: /folder/script.bat"); Proceso p = pb.start (); ...

Dado un conjunto. ¿Cómo encuentro todas las palabras en la lista que tienen más de tres caracteres y las agrego a una nueva lista public class RunnerClass {public static int counter; público estático ...

En este momento tengo una tarea escolar donde tengo que crear un juego de conectar 4 en Java sin una interfaz gráfica de usuario utilizando matrices. Hasta ahora he podido hacer que el juego detecte un cuatro horizontal en una fila, pero puedo '...

Creé una lista de cadenas en Java y quiero iterar a través de los elementos (nombres de animales) que agregué usando la clase de iterador. Me preguntaba por qué escribirlo manualmente.next () en el siguiente código ...