Trying to merge two sorted list question from LeetCode, keep running into undefined result:
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} l1
* @param {ListNode} l2
* @return {ListNode}
*/
var mergeTwoLists = function(l1, l2) {
var res = new ListNode();
var curr = res;
while(l1 !== null && l2 !== null) {
if(l1.val <= l2.val) {
// Set current node to l1 if less than or equal
curr = l1;
// Move l1's head to next
l1 = l1.next
} else {
// Else same case for l2
curr = l2;
l2 = l2.next;
}
// Move current to next
curr = curr.next
}
if (l1 !== null) {
curr = l1;
} else if (l2 !== null) {
curr = l2;
}
return res;
};
Not sure why res is returning undefined. From what I can tell, I'm setting res to be the head pointer for the resulting linked list nodes and performing the following logic:
While L1 or L2 has not reached its end, compare values.
IF L1.val is less than or equal to L2.val, set it to the current node, then bump up the pointer for L1 to the next value.
ELSE do the mirror for L2.
Once the current node value is set, bump up the node to the next item (either L1.next or L2.next, which will be overridden by the next larger value from either of the lists) and repeat.
Once we reach the end of either L1 or L2, set the remaining linked list to the current node, then return the head res pointer of the full list.
Not sure where I'm going wrong here with the logic, maybe it's getting a little late haha. Apologies if this has been repeated, appreciate any help!