思想:递归
代码:
package demo3;
/**
* Created by Administrator on 2018/12/5.
*/
public class Node {
int data;
Node next=null;
public Node(int data){
this.data=data;
}
}
package demo3;
/**
* Created by Administrator on 2018/12/5.
*/
public class MyLink {
//初始化链表
public Node head=null;
public void addNode(int d){
Node list=new Node(d);
if(head==null){
head=list;
return;
}
Node tmp=head;
while (tmp.next!=null){
tmp=tmp.next;
}
tmp.next=list;
}
public Node Mergelist(Node list1,Node list2) {
Node head=null;
if(list1==null)
return list2;
if(list2==null)
return list1;
if(list1.data<=list2.data){
head=list1;
head.next=Mergelist(head.next,list2);
}else{
head=list2;
head.next=Mergelist(list1,head.next);
}
return head;
}
}
package demo3;
/**
* Created by Administrator on 2018/12/5.
*/
public class TestMerge {
public static void main(String args[]){
MyLink list=new MyLink();
MyLink list1=new MyLink();
MyLink list2=new MyLink();
list1.addNode(2);
list1.addNode(5);
list1.addNode(7);
list1.addNode(9);
list1.addNode(10);
list2.addNode(3);
list2.addNode(4);
list2.addNode(6);
list2.addNode(8);
list2.addNode(13);
Node headNode=list.Mergelist(list1.head,list2.head);
/*这里出现了问题,之前代码
Node headNode=list.Mergelist(list1,list2);
总是报错 list1,list2是Mylist型,最后改成list.head即可运行成功。
*/
Node tmp=headNode;
while (tmp!=null){
System.out.println(tmp.data);
tmp=tmp.next;
}
}
}