可能重复:
C++ 中的尾递归
我是 C++ 中尾递归的新手。我的项目要求我使所有函数尾递归。我已经测试了以下代码,它可以正常工作。但是,我不确定我的做法是否符合尾递归的要求。
static int sum_helper(list_t hList, int accumulator){
if (list_isEmpty(hList))
return accumulator;
else {
accumulator += list_first(hList);
hList = list_rest(hList);
return sum_helper(hList, accumulator);
}
}
int sum(list_t list){
/*
// EFFECTS: returns the sum of each element in list
// zero if the list is empty.
*/
if (list_isEmpty(list))
return 0;
return sum_helper(list, 0);
}
谢谢!