我的MergeSort递归出了什么问题?

时间:2014-09-24 12:49:25

标签: java recursion linked-list mergesort

我在自定义链接列表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

0 个答案:

没有答案