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.
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if(l1==NULL ){ return l2; } if(l2 == NULL){ return l1; } ListNode* head = l1->val < l2->val ? l1:l2; if(head == l1) head->next = mergeTwoLists(l1->next, l2); else head->next = mergeTwoLists(l1, l2->next); return head; } };
原文:http://www.cnblogs.com/zengzy/p/5002101.html