程序可以运行,可以输入,可以输出,但是到了释放内存的时候就有问题了 求大神指正。
#include <stdio.h>
#include <stdlib.h>
typedef struct node{
int data;
struct node *next;
}*LPNODE;
LPNODE CreateList(int n);
void ShowList(LPNODE lphead);
int main(void)
{
LPNODE lpHead, temp, current;
int num;
puts("请问您需要几个节点?");
scanf_s("%d", &num);
lpHead = CreateList(num);
ShowList(lpHead);
//释放链表
current = lpHead;
while (current != NULL)
{
temp = current->next;
free(current);
current = temp;
}
return 0;
}
LPNODE CreateList(int n)
{
int _data, count = 0;
LPNODE lpHead = NULL;
LPNODE current, prev;
lpHead = current = prev = (LPNODE)malloc(sizeof(LPNODE));
puts("请输入一个数字:");
while (scanf_s("%d", &_data))
{
current = (LPNODE)malloc(sizeof(LPNODE));
prev->next = current;
current->data = _data;
current->next = NULL;
prev = current;
count++; //控制循环
if (count < n)
puts("请输入下一个数字");
else
{
puts("输入结束!");
break;
}
}
return lpHead;
}
void ShowList(LPNODE lpHead)
{
LPNODE p = lpHead->next;
while (p != NULL)
{
printf("%d ", p->data);
p = p->next;
}
}