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 }