题解 | #牛牛的单链表求和#
牛牛的单链表求和
https://www.nowcoder.com/practice/a674715b6b3845aca0d5009bc27380b5
#include <stdio.h> #include <stdlib.h> //定义节点; typedef struct node { int data; struct node* next; }node; //创建节点; node* create(int data) { node* newnode=(node*)malloc(sizeof(node)); if(newnode==NULL) exit(-1); newnode->data=data; newnode->next=NULL; return newnode; } //连接节点; void appenden(node** head,int data)//由于传入的是副本,我们要传入地址对本体操作; { node* newnode=create(data); if(*head==NULL) { *head=newnode; return; } node* temp=*head; while(temp->next!=NULL) { temp=temp->next; } temp->next=newnode; } //相加并输出节点data之和; void addlist(node* head) { node* temp=head; long long sum=0; while(temp!=NULL) { sum+=temp->data; temp=temp->next; } printf("%lld\n",sum); } int main() { node* head=NULL; int arr[10000]={0}; int n; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&arr[i]); appenden(&head,arr[i]); } addlist(head); return 0; }