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

牛牛的链表添加节点

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

#include <stdio.h>
#include <stdlib.h>

typedef struct Node{
    int data;
    struct Node* next;
}node;

node* crearList(){
    node* headNode = (node*)malloc(sizeof(node));
    headNode->next = NULL;
    return headNode;
}

node* creatNode(int data){
    node* newNode = (node*)malloc(sizeof(node));
    newNode->data = data;
    newNode->next = NULL;
    return newNode;
}

void insertNode(node* headNode, int data){
    node* newNode = creatNode(data);

    while(headNode->next){
        headNode = headNode->next;
    }
    headNode->next = newNode;
    newNode->next = NULL;
}

void insertNewnode(node* headNode, int data){
    int k = 1;
    node* newNode = creatNode(data);
    node* frontNode = headNode->next;

    while(frontNode){
        if(k == data){
            newNode->next = frontNode->next;
            frontNode->next = newNode;
            break;
        }
        ++k;
        frontNode = frontNode->next;
    }
}

void printList(node* headNode){
    node* pmove = headNode->next;

    while(pmove){
        printf("%d ", pmove->data);
        pmove = pmove->next;
    }
}

int main() {
    int n, i, j = 0;
    int array[] = {0};
    int* p = array;

    node* list = crearList();
    scanf("%d %d", &n, &i);
    p = (int*)malloc((n+1) * sizeof(int));
    for(j = 0; j < n; j++){
        scanf("%d ", p+j);
        insertNode(list, *(p+j));
    }

    insertNewnode(list, i);
    printList(list);

    return 0;
}

全部评论

相关推荐

01-14 16:23
广州商学院 Java
双非后端失败第N人:如果准备好了可以直接投字节,字节是最不看学历的,只要想面,大概率都能给你约面。
双非有机会进大厂吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务