求单链表的表长c语言
时间: 2024-09-30 15:00:42 浏览: 43
在C语言中,求单链表的长度通常需要遍历整个链表并计数节点。以下是简单的步骤:
1. 定义一个指向链表头的指针`p`,初始化为`NULL`。
2. 写一个函数,比如`getLinkedListLength`,接受链表头指针作为参数。
3. 使用一个变量`length`初始化为0,用于存储链表长度。
4. 进入一个循环,只要`p`不为空,就执行以下操作:
a. 将`length`加一。
b. 把`p`设置为`p->next`,即移动到下一个节点。
5. 当`p`变为`NULL`时,退出循环,链表结束,`length`就是链表的长度。
下面是一个简化版的示例代码片段:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node* next;
} Node;
int getLinkedListLength(Node* head) {
if (head == NULL) return 0; // 空链表
int length = 0;
Node* p = head;
while (p != NULL) {
length++;
p = p->next;
}
return length;
}
// 创建、插入节点等其他链表操作省略...
int main() {
Node* listHead = createList(); // 假设createList()函数创建了一个链表
int length = getLinkedListLength(listHead);
printf("The length of the linked list is %d\n", length);
return 0;
}
```
阅读全文