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

牛牛的双链表求和

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;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务