将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
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 class Solution { 10 public ListNode mergeTwoLists(ListNode l1, ListNode l2) { 11 if(l1==null&&l2==null){ 12 return null; 13 } 14 ListNode l3 = null; 15 ListNode head = null; 16 while(l1!=null||l2!=null){ 17 int temp = 0 ; 18 if(l1!=null&&l2!=null){ 19 if(l1.val<=l2.val){ 20 temp=l1.val; 21 l1=l1.next; 22 }else{ 23 temp=l2.val; 24 l2=l2.next; 25 } 26 } 27 else if(l1==null){ 28 temp=l2.val; 29 l2=l2.next; 30 } 31 else if(l2==null){ 32 temp=l1.val; 33 l1=l1.next; 34 } 35 ListNode next = new ListNode(temp); 36 if(l3==null){ 37 l3=next; 38 head =l3; 39 }else{ 40 l3.next=next; 41 l3=l3.next; 42 } 43 } 44 l3.next=null; 45 return head; 46 } 47 }