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.
Solution:
1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * int val; 5 * ListNode next; 6 * ListNode(int x) { 7 * val = x; 8 * next = null; 9 * } 10 * } 11 */ 12 public class Solution { 13 public ListNode mergeTwoLists(ListNode l1, ListNode l2) { 14 ListNode preHead = new ListNode(0); 15 ListNode end = preHead; 16 while (l1!=null || l2!=null){ 17 if (l1==null){ 18 end.next = l2; 19 break; 20 } 21 22 if (l2==null){ 23 end.next = l1; 24 break; 25 } 26 27 if (l1.val<l2.val){ 28 end.next = l1; 29 end = l1; 30 l1 = l1.next; 31 } else { 32 end.next=l2; 33 end = l2; 34 l2 = l2.next; 35 } 36 } 37 38 return preHead.next; 39 } 40 }