用C语言写一段不带头节点的单链表求表长的函数
时间: 2024-05-03 08:22:47 浏览: 104
无头节点的单链表
```c
#include <stdio.h>
#include <stdlib.h>
// 定义单链表的结构体
typedef struct ListNode {
int val;
struct ListNode *next;
} ListNode;
// 求单链表的长度
int getLength(ListNode *head) {
int length = 0;
ListNode *p = head;
while (p) {
length++;
p = p->next;
}
return length;
}
int main() {
// 创建一个单链表 1->2->3->4->5
ListNode *head = NULL;
ListNode *tail = NULL;
for (int i = 1; i <= 5; i++) {
ListNode *node = (ListNode *) malloc(sizeof(ListNode));
node->val = i;
node->next = NULL;
if (!head) {
head = node;
tail = node;
} else {
tail->next = node;
tail = node;
}
}
// 输出单链表的长度
int length = getLength(head);
printf("Length of the linked list: %d\n", length);
// 释放单链表的内存
ListNode *p = head;
while (p) {
ListNode *temp = p;
p = p->next;
free(temp);
}
return 0;
}
```
阅读全文