LeetCode#21 . Easy
Merge Two Sorted Lists
Merge two sorted linked lists and return it as a new sorted list. The new 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.
Watch This Video To Know More about this Question And How To Approach This Question
Solution 1 :
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if(l1 == null && l2 == null)
return null;
ListNode dummy = new ListNode(-1);
ListNode ans = dummy;
while(l1 != null && l2 != null){
if(l1.val < l2.val){
dummy.next = new ListNode(l1.val);
l1 = l1.next;
dummy = dummy.next;
}else{
dummy.next = new ListNode(l2.val);
l2 = l2.next;
dummy = dummy.next;
}
}
while(l1 != null){
dummy.next = new ListNode(l1.val);
l1 = l1.next;
dummy = dummy.next;
}
while(l2 != null){
dummy.next = new ListNode(l2.val);
l2 = l2.next;
dummy = dummy.next;
}
return ans.next;
}
}
Solution 2 :
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if (l1 == null){
return l2;
}
if (l2 == null){
return l1;
}
if (l1.val <= l2.val){
return new ListNode(l1.val, mergeTwoLists(l1.next, l2));
}else {
return new ListNode(l2.val , mergeTwoLists(l1, l2.next));
}
}
}
0 Comments