其他分享
首页 > 其他分享> > leetcode菜狗入门 | 21. 合并两个有序链表

leetcode菜狗入门 | 21. 合并两个有序链表

作者:互联网

合并两个有序链表

题目描述

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

示例:

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

解题思路

是普遍的递归解法,主要就是要有递归的思想。链表、二叉树都是比较大的概率使用递归解法。

代码

/**
 * 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(l2 == NULL){
            return l1;
        }
        if(l1 == NULL && l2 != NULL){
            return l2;
        }
        if(l1->val < l2->val){
            l1->next = mergeTwoLists(l1->next, l2);
            return l1;
        }
        else{
            l2->next = mergeTwoLists(l2->next, l1);
            return l2;
        }
    }
};
Pricircle 发布了13 篇原创文章 · 获赞 0 · 访问量 125 私信 关注

标签:菜狗,ListNode,21,next,链表,l2,l1,NULL
来源: https://blog.csdn.net/weixin_42349706/article/details/104417778