Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
代碼如下:
1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * int val; 5 * ListNode next; 6 * ListNode(int x) { val = x; } 7 * } 8 */ 9 public class Solution { 10 public ListNode mergeTwoLists(ListNode l1, ListNode l2) { 11 if(l1==null&&l2==null) 12 return null; 13 if(l1==null&&l2!=null) 14 return l2; 15 if(l1!=null&&l2==null) 16 return l1; 17 18 ListNode head=l1.val<=l2.val?l1:l2; 19 ListNode p=head; 20 if(head==l1) 21 l1=l1.next; 22 else if(head==l2) 23 l2=l2.next; 24 25 while(l1!=null&&l2!=null) 26 { 27 head.next=l1.val<=l2.val?l1:l2; 28 if(head.next==l1) 29 l1=l1.next; 30 else if(head.next==l2) 31 l2=l2.next; 32 head=head.next; 33 } 34 35 if(l1==null&&l2==null) 36 head.next=null; 37 if(l2!=null) 38 head.next=l2; 39 if(l1!=null) 40 head.next=l1; 41 42 return p; 43 } 44 }