劍指offer____合併兩個排序的連結串列
阿新 • • 發佈:2018-11-11
輸入兩個單調遞增的連結串列,輸出兩個連結串列合成後的連結串列,當然我們需要合成後的連結串列滿足單調不減規則。
struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; class Solution { public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { if(pHead1 == NULL && pHead2 == NULL) return NULL; if(pHead1 == NULL ) return pHead2; if(pHead2 == NULL ) return pHead1; ListNode *pAdd = NULL;; ListNode *p = NULL; while(pHead1 != NULL && pHead2 != NULL) { if(pHead1->val <= pHead2->val) { if(pAdd == NULL) { pAdd = pHead1; pHead1 = pHead1->next; p = pAdd; } else { p->next = pHead1; pHead1 = pHead1->next; p = p->next; } } else { if(pAdd == NULL) { p = pHead2; pHead2 = pHead2->next; p = pAdd; } else { p->next = pHead2; pHead2 = pHead2->next; p = p->next; } } } if(pHead1 == NULL) { p->next = pHead2; } if(pHead2 == NULL) { p->next = pHead1; } return pAdd; } };