#include<stdio.h>
#include<stdlib.h>
int n;
typedef struct node{
int val;
struct node *next;//自引用结构,确保链表的大小是动态的
}myLink;
myLink *newLink()
{
myLink *head=NULL;//创建头指针
myLink *temp=(myLink*)malloc(sizeof(myLink));//创建头结点
temp->val=-1;
temp->next=NULL;//头节点的指针先指向NULL
head=temp;//头指针指向头结点
for(int i=1;i<=n;i++)
{
int val;
scanf("%d",&val);
myLink *a=(myLink*)malloc(sizeof(myLink));//开辟一个新结点
a->val=val;//赋予数值
a->next=NULL;//由于新节点目前未知,所以指向NULL
temp->next=a;
temp=a;//如此循环往复
}
return head;//返回头指针以提供遍历入口
}
void printLink(myLink *p)
{
myLink *temp=p;
while(temp)
{
printf("%d ",temp->val);
temp=temp->next;
}
}
int main()
{
scanf("%d",&n);
myLink *p=newLink();
printLink(p);
system("pause");
return 0;
}
输入:
5
1 2 3 4 5
输出:
-1 1 2 3 4 5