main函数里面写了定义的两个链表,可以直接跑
//结构体
class ListNode {
private int Data;
ListNode Next;
ListNode(int i){
this.Data=i;
this.Next=null;
}
public int getData() {
return Data;
}
public void setData(int data) {
this.Data = data;
}
};
public class mergeList {
//打印链表
private static void printList(ListNode list1) {
if(list1==null||list1.Next==null) {
return ;
}
while(list1!=null) {
System.out.println(list1.getData());
list1=list1.Next;
}
}
//连接两个链表
static ListNode Merge( ListNode L1, ListNode L2 ){
ListNode L11=L1;
ListNode L22=L2;
ListNode L33= new ListNode(0);
ListNode L3= new ListNode(0);
int data;
L33=L3;
while(L11!=null&&L2!=null){
if(L11.getData()<=L22.getData()){
data=L11.getData();
L3.setData(data);
L11=L11.Next;
}
else{
data=L22.getData();
L3.setData(data);
L22=L22.Next;
}
L3.Next= new ListNode(0);
L3=L3.Next;
}
if(L11==null) {
L3.setData(L22.getData());
L3.Next=L22.Next;
}
else {
L3.setData(L11.getData());
L3.Next=L11.Next;
}
return L33;
}
public static void main(String[] args) {
//List n1
ListNode n1= new ListNode(1);
ListNode n2= new ListNode(3);
ListNode n3= new ListNode(5);
n2.Next=n3;
n1.Next=n2;
//List m1
ListNode m1= new ListNode(2);
ListNode m2= new ListNode(4);
ListNode m3= new ListNode(8);
ListNode m4= new ListNode(10);
m3.Next=m4;
m2.Next=m3;
m1.Next=m2;
printList(Merge(n1,m1));
}
}