我在尝试为链表构建排序算法时遇到堆栈溢出异常。在那里,我的排序无限期地卡在同一个支点上,我无法弄清楚为什么它没有达到基本情况。
//Intlist 是一个简单的单链表类,带有一个 int var ".item" 和一个 .next 指针
pivotS(Intlist thisList){
if (thisList == null || thisList.next == null){
return thisList;
} else{
int pivot = thisList.item;
Intlist lower = lowerThanPivot(pivot, thisList);
Intlist upper = greaterOrEqualPivot(pivot, thisList);
lower = pivotS(lower);
upper = pivotS(upper);
return appendLists(lower, upper);
}
}
这应该类似于构造中的合并排序,对吧?我的个人功能似乎工作正常。我只是设置递归错误吗?