| 1234567891011121314151617181920212223242526272829303132333435363738 |
- class Q21
- {
- public:
- struct ListNode
- {
- int val;
- ListNode *next;
- ListNode() : val(0), next(nullptr) {}
- ListNode(int x) : val(x), next(nullptr) {}
- ListNode(int x, ListNode *next) : val(x), next(next) {}
- };
- ListNode *mergeTwoLists(ListNode *l1, ListNode *l2)
- {
- ListNode *preHead = new ListNode(-1);
- ListNode *prev = preHead;
- while (l1 != nullptr && l2 != nullptr)
- {
- if (l1->val < l2->val)
- {
- prev->next = l1;
- l1 = l1->next;
- }
- else
- {
- prev->next = l2;
- l2 = l2->next;
- }
- prev = prev->next;
- }
- // 合并后 l1 和 l2 最多只有一个还未被合并完,我们直接将链表末尾指向未合并完的链表即可
- prev->next = l1 == nullptr ? l2 : l1;
- std::cout << "123";
- return preHead->next;
- }
- };
|