直接贴代码了。
package com.progress;
//两个有序链表生成一个有序链表
class Linknode{
int val;
Linknode next;
public Linknode(int x ) {
// TODO Auto-generated constructor stub
val = x;
}
}
class Myclass{
public Linknode generateLinklist(int[] a) {
Linknode linknode = new Linknode(-1);
Linknode l1 = linknode;
for(int i =0;i<a.length;i++) {
l1.next = new Linknode(a[i]);
l1 = l1.next;
}
return linknode.next;
}
public Linknode newLinklist(Linknode l1,Linknode l2) {
Linknode pre = new Linknode(-1);
Linknode p = pre;
while(l1!=null&&l2!=null) {
if (l1.val<=l2.val) {
//pre指向 l1,l1后移,pre指向原来的l1;
pre.next = l1;
l1 = l1.next;
pre = pre.next;
}
else {
pre.next = l2;
l2 = l2.next;
pre =pre.next;
}
}
if(l1==null) {
pre.next = l2;
}
if(l2 ==null)
pre.next = l1;
return p.next;
}
}
public class Testclass4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Myclass myclass = new Myclass();
Linknode l1 = myclass.generateLinklist(new int[] {3,4,5,6});
Linknode l2 = myclass.generateLinklist(new int[] {});
Linknode l3 = myclass.newLinklist(l1, l2);
while(l3!=null) {
System.out.println(l3.val);
l3 = l3.next;
}
}
}