登 录
struct node{ int data; node* next; }; typedef node* List; List mergeSortedLinkList(List &list1, List &list2) { if (list1 == NULL) { return list2; } if (list2 == NULL) { return list1; } List pList1 = list1; List pList2 = list2; List mergedList = NULL; if (pList1->data <= pList2->data) { mergedList = pList1; pList1 = pList1->next; } else { mergedList = pList2; pList2 = pList2->next; } List pCurNode = mergedList; while(pList1 && pList2) { if (pList1->data <= pList2->data) { pCurNode->next = pList1; pCurNode = pList1; pList1 = pList1->next; } else { pCurNode->next = pList2; pCurNode = pList2; pList2 = pList2->next; } }
if (pList1 != NULL) { pCurNode->next = pList1; } if (pList2 != NULL) { pCurNode->next = pList2; }
return mergedList; }
抱歉!评论已关闭.