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