使用递归函数查找错误答案,该函数在C中查找链表的总和

我有两个函数可以找到一个非常庞大的链表的总和,而递归函数并不能给出真正的答案。 (我已经给出了实际的总和。所以我知道输出是否正确)

我的代码:

float sum_linkedlist(numlist *head) {
  if(head!=NULL)
    return sum_linkedlist(head->next) + head->data;
  else
    return 0;
}

我找不到我的代码有什么问题,有人可以帮我吗?