[012]链表笔记--在链表中插入一个节点

插入的数目为num,如果比head小,则插在链表头;如果比链表中元素都大,则插在结尾;否则插在链表中;

代码如下:

 1 Link* Link::Add(Link* pLink, int num) {
 2     Link *p1,*p2;
 3     p1 = pLink;
 4     Link *p0 = new Link;
 5     p0->id = num;
 6     
 7     while ((p0->id > p1->id) && (p1->next != NULL)) {
 8         p2 = p1;
 9         p1 = p1->next;
10     }
11     // 插在表头或中间
12     if(p0->id <= p1->id) {
13         // 表头
14         if (pLink == p1) {
15             p0->next = p1;
16             pLink = p0;
17         }
18         else{
19             p2->next = p0;
20             p0->next = p1;
21         }
22     }
23     // 插入结尾
24     else {
25         p1->next = p0;
26         p0->next = NULL;
27     }
28 return pLink;
29 }
原文地址:https://www.cnblogs.com/hustcser/p/3941952.html