Topic description
Input two monotonically increasing linked lists, and output the linked list after combining the two linked lists. Of course, we need the combined linked list to satisfy the monotonically non-decreasing rule.
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { ListNode* h1 = new ListNode(0); ListNode* h2 = h1; while(pHead1 != NULL && pHead2 != NULL){ if(pHead1->val < pHead2->val){ h1->next = pHead1; pHead1=pHead1->next; h1 = h1->next; }else if(pHead1->val >= pHead2->val){ h1->next = pHead2; pHead2=pHead2->next; h1 = h1->next; } h1->next = NULL; } if(pHead1){ h1->next = pHead1; }else if(pHead2){ h1->next = pHead2; } return h2->next; } };