计算单链表的长度。
作者:InfoQ IT百科
- 2022 年 4 月 24 日
本文字数:573 字
阅读完需:约 2 分钟
下面使用 C 语言实现链表数据结构和计算链表的长度。
如何计算单链表的长度。可以参考下面使用 C 语言实现链表数据结构和计算链表的长度。
#include <iostream>
using namespace std;
// 定义链表节点的数据结构
struct Node
{
int value;
Node* next;
};
// 创建一个长度为 len 的链表
Node* create_list(int v, int len)
{
Node* ret = NULL;
Node* slider = NULL;
for(int i=0; i<len; i++)
{
Node* n = new Node();
n->value = v++;
n->next = NULL;
if(slider == NULL)
{
slider = n;
ret = n;
}
else
{
slider->next = n;
slider = n;
}
}
return ret;
}
// 计算链表长度的递归实现
int listLength(Node* list)
{
if(list == NULL)
return 0;
else
return 1 + listLength(list->next);
}
// 计算链表长度的非递归实现
int listLength_non(Node* list)
{
int n = 0;
while(list)
{
n++;
list = list->next;
}
return n;
}
// 测试代码
int main()
{
Node* list = create_list(1, 7);
print_list(list);
cout << listLength_non(list) << endl;
return 0;
}
复制代码
划线
评论
复制
发布于: 刚刚阅读数: 2
InfoQ IT百科
关注
还未添加个人签名 2021.04.12 加入
还未添加个人简介
评论