21.Merge Two Sorted Lists
Solution 1: Iteration O(m+n)
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode sentinel = new ListNode(-1);
ListNode tmp = sentinel;
while(l1!=null && l2!=null){
if(l1.val <= l2.val){
tmp.next = l1;
l1 = l1.next;
}
else{
tmp.next = l2;
l2 = l2.next;
}
tmp = tmp.next;
}
if(l1 == null){
tmp.next = l2;
}
else{
tmp.next = l1;
}
return sentinel.next;
}
}
Solution 2-Recursion
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if(l1 == null){
return l2;
}
else if(l2 == null){
return l1;
}
else if(l1.val <= l2.val){
l1.next = mergeTwoLists(l1.next, l2);
return l1;
}
else{
l2.next = mergeTwoLists(l1, l2.next);
return l2;
}
}
}