mirror of
https://github.com/Manoj-HV30/dsa-competitive-programming.git
synced 2026-05-16 19:35:22 +00:00
37 lines
856 B
C++
37 lines
856 B
C++
/**
|
|
* Definition for singly-linked list.
|
|
* 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) {}
|
|
* };
|
|
*/
|
|
class Solution {
|
|
public:
|
|
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
|
|
ListNode* dummy = new ListNode(0);
|
|
ListNode* cur = dummy;
|
|
|
|
while(l1 && l2){
|
|
if((l1->val) < (l2->val) ){
|
|
cur->next = l1;
|
|
l1 = l1->next;
|
|
}
|
|
else{
|
|
cur->next = l2;
|
|
l2 = l2->next;
|
|
}
|
|
cur = cur->next;
|
|
}
|
|
cur->next = l1? l1 : l2;
|
|
ListNode* head = dummy->next;
|
|
delete dummy;
|
|
return head;
|
|
|
|
}
|
|
};
|
|
// TC : O(m+n)
|
|
// SC : O(1)
|