您的位置:首页 > 编程语言 > Java开发

Java单链表基本操作(八)--合并两个有序单链表

2016-04-01 16:17 567 查看
package listnode;
/**
* @author Gavenyeah
* @date Start_Time:2016年4月1日 下午15:01:47
* @date End_Time:2016年4月1日 下午15:23:41
*/
public class MergeSeqList {
public static void main(String[] args) {
Node head1=SortList.insertSortList(ListNode.getSingleList());
Node head2=SortList.insertSortList(ListNode.getSingleList());
head1=new MergeSeqList().mergeTwoLists(head1, head2);
ListNode.printList(head1);

}

public Node mergeTwoLists(Node l1, Node l2) {
Node head=null;
if(l1==null){//先判断两个链表是否为空
return l2;
}
if(l2==null){
return l1;
}
if(l1.data<=l2.data){
head=l1;
l1=l1.next;
}else{
head=l2;
l2=l2.next;
}
Node temp=head;
while(l1!=null&&l2!=null){
if(l1.data<=l2.data){
temp.next=l1;
l1=l1.next;
}else{
temp.next=l2;
l2=l2.next;
}
temp=temp.next;
}
if(l1!=null){
temp.next=l1;
}
if(l2!=null){
temp.next=l2;
}
return head;
}
}


代码中调用的Node类和ListNode类,代码详见

Java单链表基本操作(一)–顺序查找
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: