题解 | #牛牛的链表添加节点#

牛牛的链表添加节点

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


#include <stdio.h>
#include <stdlib.h>
typedef struct linklist {
    int data;
    struct linklist* next;
} linklist;
//创建链表节点
linklist* create_node(int x) {
    linklist* pnew = (linklist*)malloc(sizeof(linklist));
    pnew->data = x;
    pnew->next = NULL;
    return pnew;
}
linklist* insert_linklistlist(linklist* head, int data) {
    linklist* p = head ;
    linklist* newnode = create_node(data);
    if ( head -> next == NULL) {
        head -> next = newnode;
    } else {
        while ( p -> next != NULL) {
            p = p -> next;
        }
        p -> next = newnode;
    }
    return  head;
}
void print_linklist(linklist* head) {
    linklist* p = head->next;
    while (p != NULL) {
        printf("%d ", p->data);
        p = p->next;
    }
    printf("\n");
}
int main() {
    int n = 0, add_i = 0;
    scanf("%d%d", &n, &add_i);
    int arry[n] ;
    //创建带头节点的链表头节点
    linklist* head = (linklist*)malloc(sizeof(linklist));
    head->next = NULL;
    head -> data = 10000;
    //输入数组,插入节点
    for (int i = 0 ; i < n ; i++) {
        if(i == add_i )
        {
            head = insert_linklistlist(head, add_i);
        }
        scanf("%d", &arry[i]);
        head = insert_linklistlist(head, arry[i]);
    }
    if(n == add_i)
         head = insert_linklistlist(head, add_i);
    print_linklist(head);
}

全部评论

相关推荐

04-22 15:13
已编辑
Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务