#include <stdio.h> #include<malloc.h> struct Node { int val; struct Node* next; }; //大框架先创建 struct Node* createNode(int val) { struct Node* p = NULL; p = (struct Node*)malloc(sizeof(struct Node)); if (p == NULL) { printf("创建失败!\n"); return NULL; } p->val = val; //f赋值 p->next = NULL; return p; } //在插入数据 void insertNode(struct Node* q, int val) { struct Node* p; p = (struct Node*)malloc(sizeof(struct Node)); if (p == NULL) { printf("创建失败!\n"); return ; } p->val = val; p->next = q->next; q->next = p; } //在打印结果 void printfNode(struct Node* h) { struct Node* p=h; //参照昨天的单链表 int sum = 0; while (p ->next!= NULL) { //原本这里写了p!=NULL只过了八个用例 sum = sum + p->val; p = p->next; } printf("%d", sum); } int main() { int n, i; scanf("%d", &n); int* arr = (int*)malloc(sizeof(int) * n); struct Node* head = createNode(0); //创建链表 struct Node* p = head; for (i = 0; i < n; i++) scanf("%d", &arr[i]); head->val = arr[0]; for (i = 1; i <= n; i++) { insertNode(p, arr[i]); p = p->next; } printfNode(head); free(p); return 0; }