题目如下:
裁判测试程序样例:
#include <stdio.h>
#include <stdlib.h>
struct ListNode {
int data;
struct ListNode *next;
};
struct ListNode *createlist();
int main()
{
struct ListNode *p, *head = NULL;
head = createlist();
for ( p = head; p != NULL; p = p->next )
printf("%d ", p->data);
printf("\n");
return 0;
}
/* 你的代码将被嵌在这里 */
代码如下:
struct ListNode *createlist()
{
//定义一个头结点和指针
struct ListNode *head, *p;
int temp;
head = (struct ListNode*)malloc(sizeof(struct ListNode));
head->next = NULL;
scanf("%d",&temp);
//使用头插法,每次将新的结点插入到链表的头部
while(temp!=-1)
{
p = (struct ListNode*)malloc(sizeof(struct ListNode));
p->data = temp;//将temp变量中的值赋给新的结点
p->next = head->next;//使用头插法将新结点连接到head之后
head->next = p;
scanf("%d",&temp);
}
return head->next;
}