void MergeLinkList(LinkList * l1,LinkList * l2,LinkList * l3) { struct Node * na,*nb; na = l1->item; nb = l2->item; while(na && nb) { if(na->value >= nb->value) { addNewNode(l3,nb); addNewNode(l3,na); }else{ addNewNode(l3,na); addNewNode(l3,nb); } na = na->next; nb = nb->next; } while(na) { addNewNode(l3,na); na = na->next; } while(nb) { addNewNode(l3,nb); nb = nb->next; } } void addNewNode(LinkList * ll,const struct Node *const n) { struct Node * n2 = (struct Node *)malloc(sizeof(struct Node)); n2->value = n->value; n2->next = NULL; addNode(ll,n2); }
//在链表尾部添加节点 bool addNode(LinkList * pLinkList, struct Node * node) { if(pLinkList->item && node) { struct Node * n = pLinkList->item; while(n->next) { n = n->next; } n->next = node; pLinkList->length++; return true; } else if(!pLinkList->item && node) { pLinkList->item = node; pLinkList->length++; return true; } return false; }