请大神帮忙分析下链表创立的过程咯。谢谢。看不太懂。
{int len;//用来存放有效节点的个数
int i;
int val;//用来临时存放用户输入的节点的值;
//分配了一个不存放有效数据的头节点
PNODE pHead = (PNODE)malloc(sizeof(NODE));
if(NULL == pHead)
{
printf("内存分配失败,程序终止!\n");
exit(-1);
}
PNODE pTail = pHead;
pTail -> pNext = NULL;
printf("请输入您需要生成的链表节点的个数:len = ");
scanf("%d", &len);
for(i = 0; i < len; ++i)
{
printf("请输入第%d个节点的值:", i + 1);
scanf("%d",&val);
PNODE pNew = (PNODE)malloc(sizeof(NODE));
if(NULL == pNew)
{
printf("内存分配失败,程序终止!\n");
exit(-1);
}
pNew -> data = val;
pTail -> pNext = pNew;
pNew -> pNext = NULL;
pTail = pNew;
}
return pHead;
在这个程序中最后pTail = pNew,是否在下一次创建一个节点后,前一个创立的pNew ->pNext是否也会指向后面新创立的pNew?。谢谢。