本题要求实现一个函数,按输入数据的逆序建立一个链表。
函数接口定义:
struct ListNode *createlist();
函数createlist利用scanf从输入中获取一系列正整数,当读到−1时表示输入结束。按输入数据的逆序建立一个链表,并返回链表头指针。链表节点结构定义如下:
struct ListNode {
int data;struct ListNode *next;};
裁判测试程序样例:
#include<stdio.h>#include<stdlib.h>struct ListNode {
int data;struct ListNode *next;};struct ListNode *createlist();intmain(){
struct ListNode *p,*head =NULL;
head =createlist();for( p = head; p !=NULL; p = p->next )printf("%d ", p->data);printf("\n");return0;}/* 你的代码将被嵌在这里 */
输入样例:
1234567-1
输出样例:
7654321
//每次将头指针前移struct ListNode *createlist(){
struct ListNode *p,*head =NULL;int a;scanf("%d",&a);while(a !=-1){
p =(struct ListNode*)malloc(sizeof(struct ListNode));
p -> data = a;
p -> next = head;//head连接到p节点后
head = p;//head指向当前节点scanf("%d",&a);}return head;}