Inactive Tutor answered 09/28/23
Tutor
New to Wyzant
struct ListNode {
int val;
struct ListNode *next;
};
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){
// Dummy node to make code simpler and faster
struct ListNode dummy;
struct ListNode** current = &dummy.next;
// Initialize the next pointer of the dummy node to NULL
dummy.next = NULL;
while (list1 && list2) {
if (list1->val < list2->val) {
*current = list1;
list1 = list1->next;
} else {
*current = list2;
list2 = list2->next;
}
current = &((*current)->next);
}
*current = list1 ? list1 : list2;
return dummy.next