合并有序链表
public ListNode mergeList(ListNode list1, ListNode list2) {
ListNode newHead = new ListNode(0);
ListNode curNode = newHead;
while (list1 != null && list2 != null) {
if (list1.val < list2.val) {
curNode.next = list1;
list1 = list1.next;
} else {
curNode.next = list2;
list2 = list2.next;
}
curNode = curNode.next;
}
if (list1 != null) {
curNode.next = list1;
}
if (list2 != null) {
curNode.next = list2;
}
return newHead.next;
}
合并两个有序数组
public int[] mergeArray(int[] A, int m, int[] B, int n) {
int a = 0, b = 0, r = 0;
int[] result = new int[m + n];
while (a < m && b < n) {
if (A[a] < B[b]) {
result[r++] = A[a++];
} else {
result[r++] = B[b++];
}
}
while (a < m) {
result[r++] = A[a++];
}
while (b < n) {
result[r++] = B[b++];
}
return result;
}