首页 > 代码库 > [012]链表笔记--在链表中插入一个节点

[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 }

 

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