c语言 要求实现一个函数,求单链表的表长
时间: 2024-10-23 16:21:42 浏览: 23
链表-使用C语言实现带头结点的单链表.zip
在C语言中,要实现一个函数来计算单链表的长度,通常需要遍历整个链表并计数节点。这里是一个简单的递归和迭代两种常见方法的示例:
**递归方法**(推荐用于理解原理,但实际项目中可能会因为递归深度导致效率低或栈溢出)
```c
typedef struct Node {
int data;
struct Node* next;
} Node;
int getLinkedListLength(Node* head) {
if (head == NULL)
return 0; // 如果链表为空,长度为0
else
return 1 + getLinkedListLength(head->next); // 递归调用,加一表示当前节点
}
```
**迭代方法**
```c
int getLinkedListLengthIterative(Node* head) {
int length = 0;
while (head != NULL) {
length++;
head = head->next;
}
return length;
}
```
在这两个例子中,`getLinkedListLength` 函数接收链表头节点作为输入,并返回链表的长度。
阅读全文