我在自定义链接列表MergeSort
上使用lines
,其中节点具有String
数据,我希望算法根据数量对列表中的元素进行排序每个String都有的非空格字符。
这是计算Stringm中非空格字符数(每个节点的数据)的方法。我非常有信心这应该有效。
public static int numberOfCharacters(Node line)
{
return line.data.replaceAll(" ", "").length();
}
这是算法本身。它由mergeSort(lines.head);
public static Node mergeSort(Node list1)
{
if (list1 == null || list1.next == null)
{
return list1;
}
Node list2 = split(list1);
list1 = mergeSort(list1);
list2 = mergeSort(list2);
return merge(list1, list2);
}
public static final Node split(Node list1)
{
Node list2 = list1.next;
list1.next = list2.next;
list2.next = split(list2.next);
return list2;
}
NetBeans在我编译之前告诉我split()
将无限递归。
我得到的错误是Exception in thread "main" java.lang.NullPointerException
。