输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
class Solution { public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { ListNode * const head = new ListNode(INT_MIN); ListNode *current = head; ListNode *a = pHead1, *b = pHead2; while (true) { if (a == nullptr) { if (b == nullptr) { break; } else { current->next = b; break; } } else { if (b == nullptr) { current->next = a; break; } else { if (a->val < b->val) { current->next = new ListNode(a->val); current = current->next; a = a->next; } else { current->next = new ListNode(b->val); current = current->next; b = b->next; } } } } ListNode * const first = head->next; delete head; return first; } };
|