Merge two sorted linked lists and return it as a new list. The new list shoshould 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) { 7 * val = x; 8 * next = null; 9 * }10 * }11 */12 public class Solution {13 public ListNode mergeTwoLists(ListNode l1, ListNode l2) {14 15 if (l1==null || l2==null) {16 if (l1 != null) {17 return l1;18 }19 if (l2 != null) {20 return l2;21 }22 return null;23 }24 ListNode first;25 ListNode curr;26 if (l1.val < l2.val) {27 curr=l1;28 l1=l1.next;29 }else {30 curr=l2;31 l2=l2.next;32 }33 first=curr;34 while (l1!=null && l2!=null) {35 if (l1.val<l2.val) {36 curr.next=l1;37 l1=l1.next;38 curr=curr.next;39 }else {40 curr.next=l2;41 l2=l2.next;42 curr=curr.next;43 }44 }45 if (l1!=null) {46 curr.next=l1;47 }48 if (l2!=null) {49 curr.next=l2;50 }51 return first;52 }53 }
Merge two sorted lists