Посмотрите на следующий код.
while (node != null) {
if (node.itm.compareTo(node.next.itm) > 0) throw new
NullPointerException();
{
Вы не проверяете, является ли node.next
нулевым, поэтому вы пытаетесь сравнить с чем-то, чего нет при попытке получить доступ к node.next.itm
.
Я не могу гарантировать конкретное c решение, так как вы не опубликовали свою реализацию, но вам также нужно убедиться, что node.next
не равно нулю. Попробуйте следующее:
while (node != null) {
if (mode.next != null && node.itm.compareTo(node.next.itm) > 0) {
//do the swapping
}