求单链表的长度c++
时间: 2024-09-19 18:00:21 浏览: 34
在 C++ 中,求解单链表的长度通常需要遍历整个链表,因为链表并不像数组那样可以直接访问最后一个元素。你可以通过定义一个迭代器变量,并从头节点开始逐个计数节点,直到找到空指针(表示链表结束)。下面是一个简单的示例:
```cpp
#include <iostream>
// 定义链表节点结构体
struct ListNode {
int val; // 节点值
ListNode* next; // 指向下一个节点的指针
ListNode(int x) : val(x), next(nullptr) {} // 构造函数
};
// 计算链表长度的函数
int getLength(ListNode* head) {
if (head == nullptr) { // 如果链表为空,则长度为0
return 0;
}
int length = 1; // 初始化长度为1(已知有一个头节点)
ListNode* current = head;
while (current->next != nullptr) { // 遍历到链表末尾
length++;
current = current->next;
}
return length;
}
int main() {
ListNode* list = new ListNode(1);
list->next = new ListNode(2);
list->next->next = new ListNode(3); // 创建一个简单的链表
int len = getLength(list);
std::cout << "链表长度是:" << len << std::endl;
delete list;
return 0;
}
```
在这个例子中,`getLength` 函数接收链表的头节点作为参数,然后返回链表的实际长度。
阅读全文