题解 | #合并两个排序的链表#

class Solution {
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {
        // 1.如果链表1为空链表就返回链表2; 如果链表1为空链表就返回链表1
        if (pHead1 == nullptr) return pHead2;
        else if (pHead2 == nullptr) return pHead1;
        // 2.定义一个新的合并链表链表
        ListNode* pMergeHead = nullptr;
        // 3.如果链表1的val小于链表2的val, 就把链表1的节点赋给合并链表的当前节点, 然后进入递归过程
        // 4.链表1的val大于或等于链表2的val, 就把链表2的节点赋给合并链表的当前节点, 然后进入递归
        if (pHead1->val < pHead2->val) {
            pMergeHead = pHead1;
            pMergeHead->next = Merge(pHead1->next, pHead2);
        } else {
            pMergeHead = pHead2;
            pMergeHead->next = Merge(pHead1, pHead2->next);
        }
        // 5.返回合并链表
        return pMergeHead;


    }
};
全部评论

相关推荐

肥沃富饶:可能初创公司,老板不懂技术
点赞 评论 收藏
分享
02-10 01:52
已编辑
贵州师范学院 C++
在做核酸的杰尼龟很想去广西嗦粉:bro这个简历看着不错啊,这都找不到吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务