CC7. 牛牛的单向链表
描述
牛牛从键盘输入一个长度为 n 的数组,问你能否用这个数组组成一个链表,并顺序输出链表每个节点的值。输入描述
第一行输入一个正整数 n ,表示数组的长度输出描述
制作一个链表然后输出这个链表的值示例1
输入:
4 5 4 2 1
输出:
5 4 2 1
说明:
请实现链表后再遍历输出结果!C 解法, 执行用时: 2ms, 内存消耗: 288KB, 提交时间: 2022-07-30
#include<stdio.h> #include<stdlib.h> typedef struct linkNode { int data; struct linkNode *next; }LinkNode; LinkNode* iniLinkNode(void) { LinkNode *head = (LinkNode*)malloc(sizeof(LinkNode)); if(head==NULL) { printf("内存分配失败!\n"); exit(1); } head->next = NULL; return head; } void insertLinkNode(LinkNode* head,int data) { LinkNode *ptr = (LinkNode*)malloc(sizeof(LinkNode)); ptr = head; while(ptr->next!=NULL) { ptr = ptr->next; } LinkNode *new_LinkNode = (LinkNode*)malloc(sizeof(LinkNode)); new_LinkNode->data = data; new_LinkNode->next = NULL; ptr->next = new_LinkNode; } int main(void) { int n; scanf("%d",&n); int arr[n]; for(int i=0;i<n;i++) { scanf("%d",&arr[i]); } LinkNode *head = iniLinkNode(); head->data = arr[0]; for(int j=1;j<=n;j++) { insertLinkNode(head, arr[j]); } while(head->next!=NULL) { printf("%d ",head->data); head = head->next; } return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 296KB, 提交时间: 2022-07-30
#include<stdio.h> typedef struct Node { int value; struct Node *link; }node; node*Init_list(int n) { node*header=(node*)malloc(sizeof(node)); header->value=0; header->link=NULL; node*pRear=header; int count=0; int v; while(count<n) { scanf("%d",&v); node*code=(node*)malloc(sizeof(node)); code->value=v; code->link=NULL; pRear->link=code; pRear=code; count++; } return header; } int main() { int n; scanf("%d",&n); node*pNow=Init_list(n)->link; while(pNow!=NULL) { printf("%d ",pNow->value); pNow=pNow->link; } return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 300KB, 提交时间: 2022-08-02
#include<stdio.h> typedef struct Node { int data; struct Node *next; }Node,*LinkList; int main(void) { int n,data; scanf("%d",&n); LinkList L=(Node*)malloc(sizeof(Node)); Node*p=L; for(int i=0;i<n;i++)//尾插法建立单链表 { p->next=(Node*)malloc(sizeof(Node)); p=p->next; scanf("%d",&data); p->data=data; p->next=NULL; } p=L->next; while(p) { printf("%d ",p->data); p=p->next; } return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 300KB, 提交时间: 2022-05-05
#include <stdio.h> typedef struct Node { int val; struct Node * next; }Node; int main(){ int n,i,t; scanf("%d",&n); Node *p,*head,*q; p=head=(Node *)malloc(sizeof(Node)); for(i=0;i<n;++i){ scanf("%d",&t); q=(Node *)malloc(sizeof(Node *)); q->val=t; q->next=NULL; p->next=q; p=q; } head=head->next; while(head!=NULL){ printf("%d ",head->val); head=head->next; } return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 300KB, 提交时间: 2022-03-18
#include<stdio.h> #include<stdlib.h> typedef struct lNode{ int num; struct lNode* next; }LNode; int main(){ int len; scanf("%d",&len); LNode *LNodearray=(LNode*)malloc(sizeof(LNode)*len); LNodearray[0].next=NULL; for(int i=0;i<len;i++){ scanf("%d",&LNodearray[i].num); if(i!=len-1){ LNodearray[i].next=&LNodearray[i+1]; } else{ LNodearray[i].next=NULL; } } for(int i=0;i<len;i++){ printf("%d ",LNodearray[i].num); } return 0; }