将两个有序的数列,合并成一个有序的序列


package toyprogram;

/**
* This class is used for ...
*
* @author dlf(460795365@qq.com)
* @version 1.0, 2016年9月13日 下午3:39:42
*/
public class AboutArrayl {

public static void main(String[] args) {
int[] a={1,4,6,9,22};
int[] b={3,7};

int[] c=mergetTwoSortedArray(a,b);


for(int i=0;i<c.length;i++)
System.out.print(c[i]+" ");
}

/**
* @param a
* @param b
* @return
*/
private static int[] mergetTwoSortedArray(int[] a, int[] b) {
int[] c=new int[a.length+b.length];
int i=0,j=0;
int k=0;
while(i<a.length&&j<b.length)
if (a[i]<b[j])
c[k++]=a[i++];
else
c[k++]=b[j++];

while (i<a.length)
c[k++]=a[i++];

while(j<b.length)
c[k++]=b[j++];

return c;
}

}


写完这个之后,我忽然想到如果不允许申请额外空间,那这个题怎么解决?

上面的要求可以理解为合并两个有序的链表,且不申请额外空间