从键盘输入一个长度为 n 的数组,问你能否用这个数组组成一个链表,并顺序输出链表每个节点的值。
输入描述:
第一行输入一个正整数 n ,表示数组的长度
输出描述:
制作一个链表然后输出这个链表的值
输入:
4 5 4 2 1
复制
输出:
5 4 2 1
复制
说明:
请实现链表后再遍历输出结果!
#include <stdio.h>
#include <stdlib.h>
typedef struct ListNode
{
int data;
struct ListNode* next;
}ListNode;
ListNode * creat_list(int arr[],int n)
{
ListNode *head=(ListNode*)malloc(sizeof(ListNode));
head->data=arr[0];
head->next=NULL;
ListNode *p=head;
for (int i=1;i<n;i++) {
ListNode *s=(ListNode*)malloc(sizeof(ListNode));
s->data=arr[i];
s->next=NULL;
p->next=s;
p=p->next;
}
return head;
}
void show_list(ListNode *head)
{
ListNode *p=head;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
}
int main() {
int n;
scanf("%d",&n);
int arr[n];
for(int i=0;i<n;i++)
{
scanf("%d ",&arr[i]);
}
ListNode *head=creat_list(arr,n);
show_list(head);
return 0;
}