//测试类
package SignalLinkList6;
import java.util.Scanner;
public class SignalLinkListDemo {
public static void main(String[] args) {
SignalLinkList s1 = new SignalLinkList();
SignalLinkList s2 = new SignalLinkList();
AddNode(s1,1);
AddNode(s2,2);
SignalLinkList s = CombineLinkList(s1,s2);
System.out.println("排序结果:");
s.show();
}
public static void AddNode(SignalLinkList s, int num){
Scanner sc = new Scanner(System.in);
System.out.println("请输入第"+num+"个链表的结点个数:");
int number = sc.nextInt();
System.out.println("请输入第"+num+"个链表的结点:");
for (int i = 0; i < number; i++) {
int n = sc.nextInt();
s.addNode(n);
}
}
public static SignalLinkList CombineLinkList(SignalLinkList s1,SignalLinkList s2){
LinkNode temp1 = s1.Head.next;
LinkNode temp2 = s2.Head.next;
LinkNode l = null;
SignalLinkList s = new SignalLinkList();
if(temp1.number < temp2.number){
l = temp1;
}
if(temp2.number < temp1.number){
l = temp2;
}
s.addNode (l);
while(temp1 !=null && temp2 !=null){
if(temp1.number < temp2.number){
while(temp1.number < temp2.number){
l = temp1;
temp1 = temp1.next;
if(temp1 == null){
break;
}
}
l.next = temp2;
l = temp1;
if(temp1 == null){
break;
}
}
if(temp2.number < temp1.number){
while(temp2.number < temp1.number){
l = temp2;
temp2 = temp2.next;
if(temp2 == null){
break;
}
}
l.next = temp1;
l = temp2;
if(temp2 == null){
break;
}
}
}
return s;
}
}
//链表结点类
class LinkNode {
public int number;
public LinkNode next;
public LinkNode(int number){
this.number = number;
}
@Override
public String toString() {
return number +" ";
}
}
//链表类
class SignalLinkList {
LinkNode Head = new LinkNode(0);
public void addNode (LinkNode l){
LinkNode temp = Head;
while(temp.next != null && l.number > temp.next.number){
temp = temp.next;
}
if(temp.next == null){
temp.next = l;
}
else if(temp.next.number > l.number){
l.next = temp.next;
temp.next = l;
}
}
public void addNode(int number){
LinkNode temp = Head;
LinkNode l = new LinkNode(number);
while(temp.next != null && number > temp.next.number){
temp = temp.next;
}
if(temp.next == null){
temp.next = l;
}
else if(temp.next.number > number){
l.next = temp.next;
temp.next = l;
}
}
public void show(){
if(Head.next ==null){
System.out.println("链表为空");
}
LinkNode temp = Head.next;
while(temp != null){
System.out.print(temp.toString());
temp = temp.next;
}
}
}
输出结果:



