5)合并两个有序的单链表(合并后有序)
public class Main {
public static void main(String[] args) {
HeroNode heroNode=new HeroNode(1,"a","a");
HeroNode heroNode2=new HeroNode(5,"b","b");
HeroNode heroNode3=new HeroNode(6,"c","d");
HeroNode heroNode4=new HeroNode(6,"d","d");
HeroNode heroNode5=new HeroNode(2,"d","d");
HeroNode heroNode6=new HeroNode(4,"d","d");
SinleLinkedList sinleLinkedList=new SinleLinkedList();
SinleLinkedList sinleLinkedList1=new SinleLinkedList();
sinleLinkedList .add3(heroNode);
sinleLinkedList .add3(heroNode2);
sinleLinkedList .add3(heroNode3);
sinleLinkedList .add3(heroNode4);
sinleLinkedList1 .add3(heroNode5);
sinleLinkedList1 .add3(heroNode6);
System.out.println("合并后");
HeroNode hebin = hebin(sinleLinkedList.getHead().next, sinleLinkedList1.getHead().next);
while (hebin!=null){
System.out.println(hebin.toString());
hebin=hebin.next;
}
}
public static HeroNode hebin(HeroNode l1,HeroNode l2){
HeroNode preprew=new HeroNode(0,"","");
HeroNode prev=preprew;
while (l1!=null && l2!=null){
if(l1.no<=l2.no){
prev.next=l1;
l1=l1.next;
}else {
prev.next=l2;
l2=l2.next;
}
prev=prev.next;
}
if(l1==null){
prev.next=l2;
}else if(l2==null){
prev.next=l1;
}
return preprew.next;
}
}