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 // IMPORTANT: Please reset any member data you declared, as 15 // the same Solution instance will be reused for each test case. 16 if(l1 == null && l2 == null) 17 return null; 18 if(l1 == null) 19 return l2; 20 if(l2 == null) 21 return l1; 22 23 ListNode header = null; 24 ListNode runner = null; 25 while(l1 != null && l2 != null) 26 { 27 if(l1.val < l2.val) 28 { 29 if(header == null){ 30 header = l1; 31 runner = header; 32 } 33 else{ 34 runner.next = l1; 35 runner = runner.next; 36 } 37 l1 = l1.next; 38 } 39 else 40 { 41 if(header == null){ 42 header = l2; 43 runner = header; 44 } 45 else{ 46 runner.next = l2; 47 runner = runner.next; 48 } 49 l2 = l2.next; 50 } 51 } 52 if(l1 != null) 53 runner.next = l1; 54 if(l2 != null) 55 runner.next = l2; 56 return header; 57 58 } 59 }