链表所有元素之和的递归函数C语言
时间: 2023-11-12 22:05:12 浏览: 77
C++使用递归来顺序和逆序输出链表的全部元素
5星 · 资源好评率100%
以下是链表所有元素之和的递归函数C语言实现:
```c
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* next;
};
int sum(struct Node* head) {
if (head == NULL) {
return 0;
}
else {
return head->data + sum(head->next);
}
}
int main() {
struct Node* head = NULL;
struct Node* second = NULL;
struct Node* third = NULL;
head = (struct Node*)malloc(sizeof(struct Node));
second = (struct Node*)malloc(sizeof(struct Node));
third = (struct Node*)malloc(sizeof(struct Node));
head->data = 1;
head->next = second;
second->data = 2;
second->next = third;
third->data = 3;
third->next = NULL;
int result = sum(head);
printf("The sum of all elements in the list is: %d", result);
return 0;
}
```
在这个例子中,我们创建了一个链表,然后使用递归函数来计算链表中所有元素的和。递归函数sum()接收链表的头指针作为参数,并递归地计算链表中所有元素的和。在递归的过程中,如果当前节点为NULL,则返回0,否则返回当前节点的数据值加上递归调用sum()函数的结果。最后,我们在main()函数中调用sum()函数,并打印链表中所有元素的和。
阅读全文