题解 | #牛牛的双链表求和#
牛牛的双链表求和
https://www.nowcoder.com/practice/efb8a1fe3d1f439691e326326f8f8c95
#include <stdio.h>
#include <stdlib.h>
//结构体
typedef struct Node
{
int num;
struct Node *next;
}LinkNode;
//创建链表
LinkNode *creat_link(int n){
int i;
LinkNode *head = (LinkNode *)malloc(sizeof(LinkNode));
LinkNode *tail;
head->next = NULL;
scanf("%d", &head->num);
tail = head;
for (i = 0; i < n-1; ++i)
{
LinkNode *p = (LinkNode *)malloc(sizeof(LinkNode));
scanf("%d", &p->num);
p->next = NULL;
tail->next = p;
tail = tail->next;
}
return head;
}
//链表对应数据相加操作
void add_node(int n, const LinkNode *head_1, LinkNode *head_2){
int i;
LinkNode *tail_1 = head_1;
LinkNode *tail_2 = head_2;
for(i = 0; i < n; ++i){
tail_2->num = tail_2->num + tail_1->num;
tail_1 = tail_1->next;
tail_2 = tail_2->next;
}
}
int main(int argc, char const *argv[])
{
int n,i;
scanf("%d", &n);
LinkNode *head_1 = creat_link(n);//创建链表a
LinkNode *tail;
LinkNode *head_2 = creat_link(n);//创建链表b
add_node(n, head_1, head_2);
printf("%d ", tail->num);
tail = tail->next;
}
printf("\n");
return 0;
}
#include <stdlib.h>
//结构体
typedef struct Node
{
int num;
struct Node *next;
}LinkNode;
//创建链表
LinkNode *creat_link(int n){
int i;
LinkNode *head = (LinkNode *)malloc(sizeof(LinkNode));
LinkNode *tail;
head->next = NULL;
scanf("%d", &head->num);
tail = head;
for (i = 0; i < n-1; ++i)
{
LinkNode *p = (LinkNode *)malloc(sizeof(LinkNode));
scanf("%d", &p->num);
p->next = NULL;
tail->next = p;
tail = tail->next;
}
return head;
}
//链表对应数据相加操作
void add_node(int n, const LinkNode *head_1, LinkNode *head_2){
int i;
LinkNode *tail_1 = head_1;
LinkNode *tail_2 = head_2;
for(i = 0; i < n; ++i){
tail_2->num = tail_2->num + tail_1->num;
tail_1 = tail_1->next;
tail_2 = tail_2->next;
}
}
int main(int argc, char const *argv[])
{
int n,i;
scanf("%d", &n);
LinkNode *head_1 = creat_link(n);//创建链表a
LinkNode *tail;
LinkNode *head_2 = creat_link(n);//创建链表b
add_node(n, head_1, head_2);
tail = head_2;
//打印链表
while(tail != NULL){printf("%d ", tail->num);
tail = tail->next;
}
printf("\n");
return 0;
}