求链表长度的函数的问题
链表建立好之后,对链表求长度,设置了一个求链表长度的函数,但返回值始终为1,很是困惑,望大神指点,感激不尽。
#include
#include
#include
typedef struct Node
{
int data;
struct Node * pnext;
}NODE, * PNODE;
PNODE create_list()
{
PNODE phead=(PNODE)malloc(sizeof(NODE));
if(phead==NULL)
{
printf("内存分配失败,程序终止。\n");
exit(-1);
}
PNODE pnew=(PNODE)malloc(sizeof(NODE));
if(pnew==NULL)
{
printf("内存分配失败,程序终止。\n");
exit(-1);
}
int val,len,i;
printf("请输入您要建立的链表的长度:");
scanf("%d",&len);
PNODE ptail;
ptail=phead;
for(i=0;
i
printf("请输入第%d个节点的值:",i+1);
scanf("%d",&val);
pnew->data =https://www.it610.com/article/val;
ptail->pnext =pnew;
pnew->pnext =NULL;
ptail=pnew;
}
return phead;
}
int length(PNODE phead)
{
PNODE p=phead->pnext;
int n=0;
while(NULL!=p)
{
n++;
p=p->pnext;
}
return n;
}
void traverse_list(PNODE phead,int len)
{
int i;
PNODE p=phead->pnext;
for(i=0;
i
printf("%d ",p->data);
p=p->pnext ;
}
printf("\n");
return;
}
int main(void)
{
PNODE phead;
int len;
phead=create_list();
len=length(phead);
printf("链表的长度是%d\n",len);
traverse_list(phead,len);
return 0;
}
程序运行后的结果如下所示:
请输入您要建立的链表的长度:6
请输入第1个节点的值:1
请输入第2个节点的值:2
请输入第3个节点的值:3
请输入第4个节点的值:4
请输入第5个节点的值:5
请输入第6个节点的值:6
链表的长度是1
6
Press any key to continue
推荐阅读
- 急于表达——往往欲速则不达
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- mybatisplus如何在xml的连表查询中使用queryWrapper
- leetcode|leetcode 92. 反转链表 II
- 下雪了,飞去你的城市拥抱你|下雪了,飞去你的城市拥抱你 | 有个直男向我表白了
- 2019女表什么牌子好(如何挑选女士手表?)
- Python爬虫|Python爬虫 --- 1.4 正则表达式(re库)
- 佳琪(三十一)
- 霍兰德职业代码对照表
- 戏曲表演对幼儿的好处。