合并链表,合并数组
题目一:合并有序链表
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
if(list1==null)
return list2;
if(list2==null)
return list1;
ListNode pMergeHead=null;
if(list1.val<list2.val){
pMergeHead=list1;
pMergeHead.next=Merge(list1.next,list2);
}else{
pMergeHead=list2;
pMergeHead.next=Merge(list1,list2.next);
}
return pMergeHead;
}
}
题目二:合并有序数组
输入两个单调递增的数组,输出两个链表合成后的数组,当然我们需要合成后的数组满足单调不减规则。
public class Solution {
public int[] merge(int[] a,int[] b){
int a_len = a.length;
int b_len = b.length;
int[] result = new int[a_len + b_len];
// i:用于标示a数组 j:用来标示b数组 k:用来标示传入的数组
int i = 0;
int j = 0;
int k = 0;
while (i < a_len && j < b_len) {
if (a[i] >= b[i])
result[k++] = a[i++];
else
result[k++] = b[j++];
}
// 后面连个while循环是用来保证两个数组比较完之后剩下的一个数组里的元素能顺利传入
while (i < a_len) {
result[k++] = a[i++];
}
while (j < b_len) {
result[k++] = b[j++];
}
return result;
}
}
205

被折叠的 条评论
为什么被折叠?



