题解 | #牛牛的双链表求和#
牛牛的双链表求和
https://www.nowcoder.com/practice/efb8a1fe3d1f439691e326326f8f8c95
#include <stdio.h>
#include <stdlib.h>
typedef int data_t;
typedef struct node
{
data_t data;
struct node *next;
}listnode,*linklist;
//创建表头
linklist list_create()
{
linklist H = (linklist)malloc(sizeof(listnode));
if(H == NULL)
{
printf("malloc is failed");
return NULL;
}
H->data = 0;
H->next = NULL;
return H;
}
//表未插入
void list_insert(linklist H)
{
linklist L = (linklist)malloc(sizeof(listnode));
if(L == NULL)
{
printf("malloc is failed");
return ;
}
linklist h = H;
int value;
scanf("%d",&value);
L->data = value;
L->next = NULL;
while(h->next != NULL)
h = h->next;
h->next = L;
}
//打印链表
void list_show(linklist H)
{
linklist h = H->next;
while(h->next != NULL)
{
printf("%d ",h->data);
h = h->next;
}
printf("%d ",h->data);
}
//链表求和
linklist list_sum(linklist H1,linklist H2)
{
linklist h1 = H1->next;
linklist h2 = H2->next;
while(h1->next != NULL)
{
h1->data = h1->data + h2->data;
h1 = h1->next;
h2 = h2->next;
}
h1->data = h1->data + h2->data;
return H1;
}
int main() {
int i, n;
linklist H1 = list_create();
linklist H2 = list_create();
linklist H3;
scanf("%d",&n);
for(i = 0;i<n;i++)
list_insert(H1);
for(i = 0;i<n;i++)
list_insert(H2);
H3 = list_sum(H1,H2);
list_show(H3);
return 0;
}
查看9道真题和解析