题解 | #牛牛的单链表求和#
牛牛的单链表求和
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;
}