算法思路:从首元结点开始,依次计数所有节点。
① 先定义一个 指针p ,让它指向首元结点,即 p = L->next;
② 然后让 指针p 移向下一个结点。p = p->next;
③ 一直重复第二步,然后 i 也随之加一,直到 p==NULL;再结束。
④ 此时 i 的值就是单链表的长度,
代码部分:
int ListLength_L(LinkList L){//返回单链表L中数据元素个数 LinkList p;//定义一个指针p,用以指向传入的单链表参数 p=L->next;//将首元结点的地址,赋值给指针p,此刻指针p指向首元结点 i=0; while(p){//遍历单链表,统计节点数,p=NULL时,while循环停止。 i++; p=p->next; } return i;//返回表中元素的个数 }