计算单链表的长度
2026/6/6 9:31:36 网站建设 项目流程

参考视频

2-9 单链表求表长和插入链点操作_哔哩哔哩_bilibili

暂无力扣参考题

题目

#include <stdio.h> #include <stdlib.h> typedef int ElemType; typedef struct LNode { ElemType data; struct LNode *next; }LNode,*LinkList; LinkList Create();/* 细节在此不表 */ int Length ( LinkList L ); int main() { LinkList L = Create(); printf("%d\n", Length(L)); return 0; } /* 你的代码将被嵌在这里 */

分析一下题目,

这是一个有头结点的单链表;头结点不计入表长

求链表长度

思路:

计数,移动指针;循环结束的条件是指针为空时;返回计数的值;

先初始化指针和计数变量,再通过移动指针遍历节点进行计数,等指针为空时结束循环,最后返回计数的结果。

手写笔记

答案

细节点:为什么 LinkList p=L->next;?

因为题目中有头结点

/** typedef struct LNode { ElemType data; struct LNode *next; }LNode,*LinkList; 这里的Node是结构体类型,LinkList是结构体的指针类型 **/ int Length ( LinkList L ){ // 如果链表为空 if(L == NULL) return 0; int total=0; // LinkList本身是指针类型,不需要加* // 题目中明确指出带头结点的单链表的表长,所以需要指向下一个 LinkList p=L->next; while(p){ total++; p=p->next; } return total; }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询