急求大牛啊,这个简单的链表到底在哪出错了
#include <stdio.h>
#include <stdlib.h>
struct list {
char str;
struct list * next;
};
int main()
{
struct list * head = NULL;
struct list * prev,* current;
char input;
while(scanf("%c",&input) && input != '#'){
current = (struct list *)malloc(sizeof(struct list));
if(head == NULL)
head = current;
else
prev->next = current;
current->next = NULL;
current->str= input;
prev = current;
}
if(head == NULL)
printf("NO DATA\n");
else
printf("the string:\n");
current = head;
while (current != NULL){
printf ("%c",current->str);
current = current->next;
}
current = head;
while (current != NULL){
free(current);
current = current->next;
}
printf("\n");
return 0;
}
while (current != NULL){
free(current);
current = current->next;
}
while (current != NULL){
prev=current->next;
free(current);
current = prev;