题解 | #牛牛的链表添加节点#
牛牛的链表添加节点
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;
}

