Created
August 9, 2021 01:58
-
-
Save Rutvik17/6ecf6941da91bdc785f1392e262d2039 to your computer and use it in GitHub Desktop.
Merge Two Sorted List
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| Merge two sorted linked lists and return it as a sorted list. The list should be made by splicing together the nodes of the first two lists. | |
| Example 1: | |
| Input: l1 = [1,2,4], l2 = [1,3,4] | |
| Output: [1,1,2,3,4,4] | |
| Example 2: | |
| Input: l1 = [], l2 = [] | |
| Output: [] | |
| Example 3: | |
| Input: l1 = [], l2 = [0] | |
| Output: [0] | |
| Constraints: | |
| The number of nodes in both lists is in the range [0, 50]. | |
| -100 <= Node.val <= 100 | |
| Both l1 and l2 are sorted in non-decreasing order. | |
| */ | |
| /** | |
| * @param {ListNode} l1 | |
| * @param {ListNode} l2 | |
| * @return {ListNode} | |
| */ | |
| var mergeTwoLists = function(l1, l2) { | |
| let preHead = new ListNode(-1); | |
| let prev = preHead; | |
| while(l1 != null && l2 != null) { | |
| if (l1.val <= l2.val) { | |
| prev.next = l1; | |
| l1 = l1.next; | |
| } else { | |
| prev.next = l2; | |
| l2 = l2.next; | |
| } | |
| prev = prev.next; | |
| } | |
| // At least one of l1 and l2 can still have nodes at this point, so connect | |
| // the non-null list to the end of the merged list. | |
| prev.next = l1 === null ? l2 : l1; | |
| return preHead.next; | |
| }; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment