合并两个已排序的链表,并将其作为一个新列表返回。新列表应该通过拼接前两个列表的节点来完成。
示例:
输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4
Personal tips: 递归,代码如下:
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
ListNode *l = new ListNode(0);
if (l1 == NULL) return l2;
if (l2 == NULL) return l1;
if (l1->val < l2->val)
{
l->val = l1->val;
l->next = mergeTwoLists(l1->next, l2);
}
else
{
l->val = l2->val;
l->next = mergeTwoLists(l1, l2->next);
}
return l;
}
};