List
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode dummpy = new ListNode(0);
ListNode lastNode = dummpy;
while(l1 != null && l2 != null){
if(l1.val < l2.val){
lastNode.next = l1;
l1 = l1.next;
}else{
lastNode.next = l2;
l2 = l2.next;
}
lastNode = lastNode.next;
}
if(l1 != null)
lastNode.next = l1;
if(l2 != null)
lastNode.next = l2;
return dummpy.next;
}
}
Array
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int[] temp = new int[m+n];
int i = 0,j = 0,k = 0;
while(i < m && j < n){
if(nums1[i] < nums2[j])
temp[k++] = nums1[i++];
else
temp[k++] = nums2[j++];
}
for(;i < m;)
temp[k++] = nums1[i++];
for(;j < n;)
temp[k++] = nums2[j++];
for(k = 0; k < m+n;k++)
nums1[k] = temp[k];
}
}