#include <stdio.h> #include "link.h" /*合併兩個排序鏈表*/ LinkNode * mergeLink(LinkNode *& pHead1, LinkNode *& pHead2) { if(pHead1 == NULL) return pHead2; else if(pHead2 == NULL) return pHead1; LinkNode * pHead =0; if(pHead1->_value <= pHead2->_value) { pHead = pHead1; pHead->_next = mergeLink(pHead1->_next, pHead2); } else { pHead = pHead2; pHead->_next = mergeLink(pHead1, pHead->_next); } return pHead; } int main() { LinkNode * pHead1 = 0; LinkNode * pHead2 = 0; int a[] = {1,3,5,7,9,11,13,14}; int b[] = {2,4,6,8,10,12,15,19}; for (int i = 0; i<sizeof(a) / sizeof(a[0]); i++) { createLink(pHead1,a[i]); } for (int i = 0; i<sizeof(b) / sizeof(b[0]); i++) { createLink(pHead2,b[i]); } printLink(pHead1); printLink(pHead2); printLink(mergeLink(pHead1,pHead2)); return 0; }