三个指针一个保存la链表 ,一个保存lb链表,一个指向新的链表。
- 链表的插入,两个指针,一个是head,一个指向head后面的链,新插入的元素位于head后面。
- 运行该代码,自己外加上class类。
static class Node{
int a;
Node next;
}
public static void main(String args[]){
Scanner in=new Scanner(System.in);
Node la,lb,lc;
System.out.println("请输入第一个链表的长度");
la=Create_link(in.nextInt());
System.out.println("请输入第二个链表的长度");
lb=Create_link(in.nextInt());
lc=la;
merge_list(la,lb,lc);
print_list(lc);
}
static Node Create_link(int n){
Node head,p;
head=new Node();
head.next=null;
Scanner in=new Scanner(System.in);
System.out.println("请顺序输入链表的值");
for(int i=0;i<n;i++){
p=new Node();
p.a=in.nextInt();
p.next=head.next;
head.next=p;
}
return head;
}
static void merge_list(Node la,Node lb,Node lc){
Node pa,pb,pc;
pa=la.next;
pb=lb.next;
pc=lc;
while(pa!=null&&pb!=null){
if(pa.a>=pb.a){
pc.next=pa;
pc=pa;
pa=pa.next;
}
else{
pc.next=pb;
pc=pb;
pb=pb.next;
}
}
pc.next=(pa==null)?pb:pa;
}
static void print_list(Node head){
Node p;
p=head.next;
while(p!=null){
System.out.println("["+p.a+"]");
p=p.next;
}
}