Copy /**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public :
ListNode * mergeTwoLists ( ListNode * l1 , ListNode * l2) {
ListNode * newHead = new ListNode ( 0 );
ListNode * prev = newHead;
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;
}
prev -> next = (l1 == nullptr ) ? l2 : l1;
ListNode * res = newHead -> next;
delete newHead;
return res;
}
};
Runtime: 4 ms, faster than 98.91% of C++ online submissions for Merge Two Sorted Lists. Memory Usage: 9 MB, less than 66.39% of C++ online submissions for Merge Two Sorted Lists.