Java單鏈表基本操作(八)--合併兩個有序單鏈表
阿新 • • 發佈:2019-01-10
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;
}
}