时间限制:1秒 空间限制:32768K 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 代码:
/* 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) return pHead2; if(pHead2 == NULL) return pHead1; ListNode* ret = new ListNode(0); ListNode* retHead = ret; while(pHead1 && pHead2){ if(pHead1->val > pHead2->val){ ret->next = pHead2; pHead2 = pHead2->next; } else{ ret->next = pHead1; pHead1 = pHead1->next; } ret = ret->next; } while(pHead1 != NULL){ ret->next = pHead1; ret = ret->next; pHead1 = pHead1->next; } while(pHead2 != NULL){ ret->next = pHead2; ret = ret->next; pHead2 = pHead2->next; } return retHead->next; } };