将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

    示例:

    输入:1->2->4, 1->3->4
    输出:1->1->2->3->4->4

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/merge-two-sorted-lists

    思路:
    本级递归内容:如果 l1val 值更小,则将 l1.next 与排序合并后的链表头相接,l2 同理
    递归结束条件:当l1l2为空时结束。
    复杂度分析:
    时间复杂度O(n+m) n、m分别为l1、l2长度
    空间复杂度O(n+m)

    1. var mergeTwoLists = function (l1, l2) {
    2. if (l1 === null) {
    3. return l2;
    4. }
    5. if (l2 === null) {
    6. return l1;
    7. }
    8. if (l1.val < l2.val) {
    9. l1.next = mergeTwoLists(l1.next, l2);
    10. return l1;
    11. } else {
    12. l2.next = mergeTwoLists(l1, l2.next);
    13. return l2;
    14. }
    15. };