课程链接
    建立单链表并加值,可以用之前的在最后加入新元素的方式加入值,每次都在尾部加一个新元素,但是这样每次加元素的时候都得从头开始遍历整个链表,这样时间复杂度就是O(n);所以这里用新方法。

    尾插法建立单链表
    **
    先建立一个空表,然后让一个指针r指向这个空表,,然后申请一个新的内存存储一个元素,生成一个新的数据项,让一个新的指针s指向这个新的数据项,然后让r->next指向s,就是将表头和这个新的数据项结合起来,形成了一个表,,然后让r指向s,意思就是让r指向表尾,,,依次循环就能形成链表了,,想结束的话,直接输入9999(这个值可以自己定义)来跳出循环。
    以下这个算法的时间复杂度是O(n)

    1. LinkList List_TailInsert(LinkList &L)
    2. {
    3. int x;
    4. L=(LinkList)malloc(sizeof(LNode)); //申请一块内存建立头结点(建立一个空表)
    5. LNode *s,*r=L; //让r指针指向L
    6. scanf("%d",&x) //x就是要插入单链表的数据元素
    7. while(x!=9999) //输入9999表示结束
    8. {
    9. s=(LNode*)malloc(sizeof(LNode)); //让s指向一个新的结点
    10. s->data = x; //把x的值存在新结点的数据位
    11. r->next = s; //把r指针的next指向s
    12. r=s; //最后让r指向新的表结尾
    13. scanf("%d",&x);
    14. }
    15. r->next=NULL; //结束链表
    16. return L;
    17. }

    头插法建立单链表