采用尾插法建立单链表
LinkList List_TailInsert(LinkList L) { // 引用传递头指针初始化链表 int x; // 存储待输入的结点数据 // 1. 创建头结点带头结点链表头结点不存有效数据 L(LNode*)malloc(sizeof(LNode)); LNode *s,*rL; // s用来新建结点r是尾指针初始指向头结点初始链表只有头结点尾就是头结点 scanf(%d,x); // 读取第一个输入数据 // 哨兵9999作为输入结束标志9999不会存入链表 while(x!9999){ s(LNode *)malloc(sizeof(LNode)); // 新建一个结点s s-datax; // 给新结点填入数据 r-nexts; // 把新结点接到当前尾结点r的后面 rs; // 尾指针r后移指向新的链表末尾结点 scanf(%d,x); // 读取下一个待插入数据 } r-nextNULL; // 最终尾结点的指针域置空给链表加结束标记避免野指针 return L; // 返回链表头指针 }