尝试在 Java 中向左二进制折叠时发生堆栈溢出错误
Stack overflow error trying to Binary Fold Left in Java
我在尝试 运行 这段代码时收到堆栈溢出错误。有人可以帮我调试吗?
static <U> U binFoldLeft(U e, List<U>l, BiFunction<U,U,U> f){
U result = e;
f.apply(binFoldLeft(result, (l.subList(0, l.size()/2)), f),
binFoldLeft(result, (l.subList(l.size()/2, l.size())),f));
return result;
}
谢谢!
您缺少结束递归的基本情况。正如所写,binFoldLeft
总是调用自身两次,即使 l
为空。
我在尝试 运行 这段代码时收到堆栈溢出错误。有人可以帮我调试吗?
static <U> U binFoldLeft(U e, List<U>l, BiFunction<U,U,U> f){
U result = e;
f.apply(binFoldLeft(result, (l.subList(0, l.size()/2)), f),
binFoldLeft(result, (l.subList(l.size()/2, l.size())),f));
return result;
}
谢谢!
您缺少结束递归的基本情况。正如所写,binFoldLeft
总是调用自身两次,即使 l
为空。