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

