我是靠谱客的博主 辛勤太阳,最近开发中收集的这篇文章主要介绍合并两个排序的链表---C++实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。
如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6},转换过程如下图所示:
在这里插入图片描述

class Solution {
public:
    ListNode *Merge(ListNode *pHead1, ListNode *pHead2) {
        if (pHead1 == nullptr || pHead2 == nullptr)
            return pHead1;
        ListNode *dummy = new ListNode;//额外设置一个节点
        ListNode *s = dummy;
        ListNode *p1 = pHead1;
        ListNode *p2 = pHead2;
        while (p1 && p2) {
            if (p2->val >= p1->val) {
                s->next = p1;
                s = s->next;
                p1 = p1->next;
            } else {
                s->next = p2;
                s = s->next;
                p2 = p2->next;
            }
        }
        if (p1 == nullptr)
            s->next = p2;
        if (p2 == nullptr)
            s->next = p1;

        return dummy->next;
    }
};

最后

以上就是辛勤太阳为你收集整理的合并两个排序的链表---C++实现的全部内容,希望文章能够帮你解决合并两个排序的链表---C++实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部