21. 合并两个有序链表

递归方法:

  1. 都不为空,较小的节点指向后面合并的链表
  2. 为空,则返回另一个链表
ListNode* mergeTwoLists(ListNode * list1, ListNode * list2) {
        if (list1 == nullptr) return list2;
        if (list2 == nullptr) return list1;

        ListNode * list;
        ListNode * list1next = list1 -> next;
        ListNode * list2next = list2 -> next;

        if (list1 -> val < list2 -> val)
        {
            list = list1;
            list -> next = mergeTwoLists(list1next, list2);
        }
        else
        {
            list = list2;
            list -> next = mergeTwoLists(list1, list2next);
        }

        return list;
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容