题解 | #牛牛的双链表求和#
牛牛的双链表求和
http://www.nowcoder.com/practice/efb8a1fe3d1f439691e326326f8f8c95
#include <stdio.h>
#include <stdlib.h>
typedef struct link{
int data;
struct link *next;
}Link;
void WriteLink(Link **pHead, int *arr, int len);
int main(void)
{
int len;
int arr1[100]={0};
int arr2[100]={0};
Link *head1=(Link*)malloc(sizeof(Link));
Link *head2=(Link*)malloc(sizeof(Link));
Link *temp1=head1;
Link *temp2=head2;
scanf("%d", &len);
for(int i1=0;i1<len;i1++)
{
scanf("%d ", &arr1[i1]);
}
for(int i2=0;i2<len;i2++)
{
scanf("%d ", &arr2[i2]);
}
WriteLink(&head1, arr1, len);
WriteLink(&head2, arr2, len);
temp1=head1;
temp2=head2;
while(temp1->next)
{
temp1=temp1->next;
temp2=temp2->next;
temp2->data+=temp1->data;
printf("%d ", temp2->data);
}
return 0;
}
void WriteLink(Link **pHead, int *arr, int len)
{
Link *temp=*pHead;
for(int i=0;i<len;i++)
{
Link *a=(Link*)malloc(sizeof(Link));
a->data=*(arr+i);
a->next=NULL;
temp->next=a;
temp=a;
}
}
#include <stdlib.h>
typedef struct link{
int data;
struct link *next;
}Link;
void WriteLink(Link **pHead, int *arr, int len);
int main(void)
{
int len;
int arr1[100]={0};
int arr2[100]={0};
Link *head1=(Link*)malloc(sizeof(Link));
Link *head2=(Link*)malloc(sizeof(Link));
Link *temp1=head1;
Link *temp2=head2;
scanf("%d", &len);
for(int i1=0;i1<len;i1++)
{
scanf("%d ", &arr1[i1]);
}
for(int i2=0;i2<len;i2++)
{
scanf("%d ", &arr2[i2]);
}
WriteLink(&head1, arr1, len);
WriteLink(&head2, arr2, len);
temp1=head1;
temp2=head2;
while(temp1->next)
{
temp1=temp1->next;
temp2=temp2->next;
temp2->data+=temp1->data;
printf("%d ", temp2->data);
}
return 0;
}
void WriteLink(Link **pHead, int *arr, int len)
{
Link *temp=*pHead;
for(int i=0;i<len;i++)
{
Link *a=(Link*)malloc(sizeof(Link));
a->data=*(arr+i);
a->next=NULL;
temp->next=a;
temp=a;
}
}