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 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : val(x), next(NULL) {} 7 * }; 8 */ 9 class Solution { 10 public: 11 ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) { 12 if(l1==NULL)return l2; 13 if(l2==NULL)return l1; 14 15 ListNode *ret=NULL; 16 if(l1->val<l2->val) 17 { 18 ret=l1; 19 ret->next=mergeTwoLists(l1->next,l2); 20 }else 21 { 22 ret=l2; 23 ret->next=mergeTwoLists(l1,l2->next); 24 } 25 26 return ret; 27 28 } 29 };