合并两个有序的单链表,合并之后的链表依然有序(java版)
思路
1.分别遍历
2.将两个中小的节点放入新的链表
3.将剩余的节点添加到结果链表中
4.返回结果链表的头节点
{
//两个链表都为空
if(head1.next == null && head2.next == null){
return null;
}
//两个链表都不为空
if(head1.next!=null &&head2.next!=null){
HeroNode tmp1=head1.next;
HeroNode tmp2=head2.next;
HeroNode head3 = new HeroNode(0, "", "");
HeroNode tmp3=head3;
while (true){
//两个指针到末尾
if(tmp1==null&&tmp2==null){
break;
}
if(tmp1!=null&&tmp2!=null){
// 遍历两个链表,将较小的节点添加到结果链表中
if(tmp1.no<tmp2.no){
tmp3.next=tmp1;
tmp1=tmp1.next;
}else{
tmp3.next=tmp2;
tmp2=tmp2.next;
}
}else{
///将剩余的节点添加到结果链表中
if(tmp1==null){
tmp3.next=tmp2;
tmp2=tmp2.next;
}else if(tmp2==null){
tmp3.next=tmp1;
tmp1=tmp1.next;
}
}
tmp3= tmp3.next;
}
//返回结果链表的头节点
return head3;
}
return null;
}