c语言定义函数遍历一个不带头节点的链表,返回链表上最后一个节点的数据成员ch的值。
时间: 2024-04-08 22:35:00 浏览: 140
你可以使用以下C语言代码定义一个函数来遍历一个不带头节点的链表,并返回链表上最后一个节点的数据成员ch的值:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构
struct Node {
char ch;
struct Node *next;
};
// 遍历链表并返回最后一个节点的ch值
char getLastNodeValue(struct Node *head) {
// 链表为空的情况
if (head == NULL) {
printf("链表为空。\n");
return '\0';
}
struct Node *current = head;
// 遍历链表直到最后一个节点
while (current->next != NULL) {
current = current->next;
}
// 返回最后一个节点的ch值
return current->ch;
}
int main() {
// 创建链表节点
struct Node *node1 = (struct Node *)malloc(sizeof(struct Node));
struct Node *node2 = (struct Node *)malloc(sizeof(struct Node));
struct Node *node3 = (struct Node *)malloc(sizeof(struct Node));
// 设置节点数据
node1->ch = 'A';
node2->ch = 'B';
node3->ch = 'C';
// 构建链表
node1->next = node2;
node2->next = node3;
node3->next = NULL;
// 调用函数并打印结果
char lastNodeValue = getLastNodeValue(node1);
printf("最后一个节点的ch值为: %c\n", lastNodeValue);
// 释放内存
free(node1);
free(node2);
free(node3);
return 0;
}
```
以上代码中,首先定义了一个链表节点结构`Node`,其中包含一个`char`类型的数据成员`ch`和一个指向下一个节点的指针`next`。然后定义了`getLastNodeValue()`函数,该函数通过遍历链表找到最后一个节点,并返回其`ch`值。
在`main()`函数中,创建了三个节点,并设置了它们的`ch`值和`next`指针,构建了一个链表。然后调用`getLastNodeValue()`函数来获取链表最后一个节点的`ch`值,并打印结果。
注意:在使用完链表后,需要手动释放每个节点的内存空间,以避免内存泄漏。
阅读全文