已知headz指针指向一个已建立的单向链表。链表中每个节点包含数据域(data)和指针域(next)。定义一个函数求链表中所有节点的数据域之和
时间: 2023-12-03 18:45:53 浏览: 69
关于链表 指针
可以使用一个循环遍历整个链表,将每个节点的数据域值累加起来即可求得链表中所有节点数据域之和。具体实现如下:
```c
int sumList(struct ListNode* headz) {
int sum = 0;
struct ListNode* cur = headz; // 定义一个指针指向链表头节点
while (cur != NULL) { // 循环遍历链表
sum += cur->data; // 将当前节点数据域值累加到 sum 变量中
cur = cur->next; // 将指针指向下一个节点
}
return sum; // 返回链表中所有节点数据域之和
}
```
其中,`struct ListNode` 是链表节点的结构体定义,包含数据域 `data` 和指针域 `next`,如下所示:
```c
struct ListNode {
int data;
struct ListNode* next;
};
```
需要注意的是,上述代码中的 `headz` 是链表的头节点指针,它指向链表中的第一个节点。如果链表为空,即 `headz` 指针为空,则函数直接返回 0。
阅读全文