題目:合併有序鏈表
將兩個有序鏈表合併爲一個新的有序鏈表並返回。新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。
示例:
輸入:1->2->4, 1->3->4
輸出:1->1->2->3->4->4
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if(l1 == null && l2 == null) return null;
if(l1 == null && l2!=null) return l2;
if(l1!=null && l2== null) return l1;
ListNode p1 = l1,p2 = l2;
ListNode tail,head;
if(p1.val < p2.val){
head = tail = p1;
p1 = p1.next;
}else{
head = tail = p2;
p2 = p2.next;
}
while(p1 !=null && p2 !=null){
if(p1.val < p2.val){
tail.next = p1;
p1 = p1.next;
}else{
tail.next = p2;
p2 = p2.next;
}
tail = tail.next;
}
if(p1 == null) tail.next = p2;
else if(p2 == null) tail.next = p1;
return head;
}