链表其实非常简单,主要是结构体的定义比较烦人,个人其实还是更加偏向用类的方式来实现,但是c没有,┭┮﹏┭┮
#include <stdio.h> typedef struct node{ int val; struct node* next; } node; int main() { int n; node* root = (node *)malloc(sizeof(node)); root->val = -9999; node* pre = root; scanf("%d", &n); for (int i = 0; i < n; i++) { int val; scanf("%d", &val); node* nd = (node *)malloc(sizeof(node)); nd->val = val; if (val > pre->val) { pre->next = nd; pre = pre->next; } else { node* p = root; while (p->next->val < val) { p = p->next; } nd->next = p->next; p->next = nd; } } while (root->next) { root = root->next; printf("%d ", root->val); } printf("\n"); return 0; }