我以评论的形式在代码中提供了解释.在递归函数完成后,他必须在main中打印总和.将print语句放在递归函数中会导致每次都在控制台中打印一个值.
请参阅以下更正:
public static void main(String[] args) {
List numbers = new ArrayList();
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(4);
//print the sum in here
System.out.println(sumListRecursive(numbers));
}
public static int sumListRecursive(List numbers) {
if (numbers.isEmpty() == true ) {
return 0;
}
else {
/* removed the print statement from here as it prints each time the function is called and else is executed. */
return numbers.get(0) + sumListRecursive(numbers.subList(1, numbers.size()));
}
}