1、思路概述:
首先要明确的是当我们合并完两个有序链表后,新的链表也依旧还是要有序。所以,我们首先要定义两个指针分别对两个链表进行遍历,再定义一个指针从空开始存储两个链表中挑选出来的数字。当一个链表为空时,将剩下的一个链表全部输入即可。
2、代码实现:
public void merge(Link<T> link){
Link<T> link1=new Link<>();
Link<T> link2=new Link<>();
Entry<T> cur1=link1.head.next;
Entry<T> cur2=link2.head.next;
Entry<T> p=link1.head;
while(cur2!=null&&cur1!=null){
if(cur1.data.compareTo(cur2.data)<0){
p=cur1;
cur1=cur1.next;
}
else if(cur1.data.compareTo(cur2.data)>0){
p=cur2;
cur2=cur2.next;
}
}
while (cur1==null||cur2==null){
while (cur2!=null){
p=cur2;
cur2=cur2.next;
}
while (cur1!=null){
p=cur1;
cur1=cur1.next;
}
}
}