定义一个函数求链表中所有节点的数据域之和
时间: 2023-12-03 09:45:51 浏览: 119
假设链表的节点定义如下:
```cpp
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
```
则求链表中所有节点的数据域之和的函数可以如下实现:
```cpp
int sumOfLinkedList(ListNode* head) {
int sum = 0;
ListNode* curr = head;
while (curr != NULL) {
sum += curr->val;
curr = curr->next;
}
return sum;
}
```
该函数使用一个指针 `curr` 遍历整个链表,将每个节点的数据域加到变量 `sum` 上,最后返回 `sum` 即可。
相关问题
已知headz指针指向一个已建立的单向链表。链表中每个节点包含数据域(data)和指针域(next)。定义一个函数求链表中所有节点的数据域之和
可以使用一个循环遍历整个链表,将每个节点的数据域值累加起来即可求得链表中所有节点数据域之和。具体实现如下:
```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。
已知head指针指向一个已建立的单向链表。链表中每个节点包含数据域(data)和指针域(next)。定义一个函数求链表中所有节点的数据域之和
可以通过遍历链表来累加每个节点的数据域的值,最终得到所有节点数据域之和。具体实现如下:
```c++
int sumList(Node* head) {
int sum = 0;
Node* p = head;
while (p != NULL) {
sum += p->data;
p = p->next;
}
return sum;
}
```
其中,`Node`是链表节点的结构体,包含数据域`data`和指针域`next`。`head`是链表头指针,指向链表的第一个节点。`p`是遍历链表时使用的指针,初始值为`head`。`sum`是累加器,用于存储所有节点数据域之和。在循环中,首先将当前节点的数据域加到`sum`中,然后将指针向后移动到下一个节点,直到链表末尾。最后返回`sum`即可。
阅读全文