输入了两个长度相同的数组分别是 a 和 b ,然后把数组 a 和 b 转换成链表 a 和链表 b 。把链表 a 中的全部值按顺序加到链表 b 中。
输入:
5
5 4 2 1 3
2 4 5 8 9
输出:
7 8 7 9 12
#include <stdio.h>
#include <stdlib.h>
typedef struct ListNode
{
int data;
struct ListNode* next;
}ListNode;
ListNode * creat_list(int arr[],int n)
{
ListNode *head=(ListNode*)malloc(sizeof(ListNode));
head->data=arr[0];
head->next=NULL;
ListNode *p=head;
for (int i=1;i<n;i++) {
ListNode *s=(ListNode*)malloc(sizeof(ListNode));
s->data=arr[i];
s->next=NULL;
p->next=s;
p=p->next;
}
return head;
}
void show_list(ListNode *head)
{
ListNode *p=head;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
}
void merge_list(ListNode* ha,ListNode*hb)
{
ListNode*pa=ha,*pb=hb;
while(pa!=NULL)
{
pb->data+=pa->data;
pa=pa->next;
pb=pb->next;
}
}
int main() {
int n;
scanf("%d",&n);
int a[n],b[n];
for(int i=0;i<n;i++)
{
scanf("%d ",&a[i]);
}
for(int i=0;i<n;i++)
{
scanf("%d ",&b[i]);
}
ListNode *ha=creat_list(a,n);
ListNode *hb=creat_list(b,n);
merge_list(ha,hb);
show_list(hb);
return 0;
}