#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
typedef struct Node
{
 int data;
 struct Node *pNext;
}NODE,*PNODE;
PNODE creat_link();
void show_link(PNODE pHead);
int ListLength( PNODE L );
int main()
{
 PNODE pHead=NULL; 
 pHead=creat_link();
 int len = ListLength(pHead);
 printf("%d\n",len);
 return 0;
}
PNODE creat_link()
{
 int len;
 int i;
 int val;
 printf("请输入要创建链表节点的个数:\n");
 scanf("%d",&len);
 PNODE pHead=(PNODE)malloc(sizeof(NODE));
 if(NULL==pHead)
 {
 printf("动态内存分配失败!\n");
 exit(-1);
 }
 PNODE pTail=pHead;
 pTail->pNext=NULL;
 for(i=0;i<len;i++)
 {
 printf("请输入要创建第%d个节点的值\n",i+1);
 scanf("%d",&val);
 PNODE pNew=(PNODE)malloc(sizeof(NODE));
 pNew->data=val;
 pTail->pNext=pNew;
 pNew->pNext=NULL;
 pTail=pNew;
 }
 return pHead;
}
int ListLength( PNODE L ){
 int j=0;
 PNODE p;
 p=L->pNext;
 while(p!=NULL)
 {
 p=p->pNext;
 j++;
 }
 return j;
}
