题解 | #牛牛的双链表求和#

牛牛的双链表求和

https://www.nowcoder.com/practice/efb8a1fe3d1f439691e326326f8f8c95

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#define _CRT_SECURE_NO_WARNINGS


typedef struct num {
    struct num* front;
    int a;
    struct num* next;
}num, * pnum;

void double_link_creat(pnum* phead, pnum pnew)
{
    pnum pmov = *phead;
    if (*phead == NULL)
    {
        *phead = pnew;
        pnew->front = NULL;
        pnew->next = NULL;
    }
    else {
        while (pmov->next != NULL)
        {
            pmov = pmov->next;
        }
        pmov->next = pnew;
        pnew->front = pmov;
        pnew->next = NULL;
    }
}

void double_link_range(pnum phead)
{
    pnum pmov = phead;
    while (pmov != 0)
    {
        printf("%d ", pmov->a);
        pmov = pmov->next;
    }

}


int main() {
    int n = 0;
    int i;
    scanf("%d", &n);
    int* a = (int*)calloc(n, sizeof(int));
    int* b = (int*)calloc(n, sizeof(int));
    pnum phead_a = NULL;
    pnum pnew_a = NULL;
    pnum phead_b = NULL;
    pnum pnew_b = NULL;

    for (i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }
    for (i = 0; i < n; i++)
    {
        scanf("%d", &b[i]);
    }
    for (i = 0; i < n; i++)
    {
        pnew_a = (pnum)malloc(sizeof(num));
        pnew_a->a = a[i];
        double_link_creat(&phead_a, pnew_a);
        pnew_b = (pnum)malloc(sizeof(num));
        pnew_b->a = b[i];
        pnew_b->a = pnew_a->a + pnew_b->a;
        double_link_creat(&phead_b, pnew_b);
    }
    double_link_range(phead_b);

    return 0;
}

全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务