mirror of
https://git.wolves.top/wolves/leetcode.git
synced 2025-11-05 01:36:32 +08:00
38 lines
977 B
C++
38 lines
977 B
C++
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;
|
|
}
|
|
}; |