尝试在 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 为空。