15.力扣c++刷题-->合并两个有序链表

cpp 复制代码
#include<iostream>
#include<vector>
#include<map>
#include<unordered_map>
#include<stack>
#include<list>
using namespace std;


  
  struct ListNode 
  {
      int val;
      ListNode *next;
      ListNode() : val(0), next(nullptr) {}
      ListNode(int x) : val(x), next(nullptr) {}
      ListNode(int x, ListNode *next) : val(x), next(next) {}
 };
 
class Solution {
public:
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2)
    {
        ListNode* pHead = new ListNode(-1);
        ListNode* pre = pHead;
        while ((l1 != nullptr) && (l2 != nullptr))
        {
            if (l1->val <=  l2->val)
            {
                pre->next = l1; 
                l1 = l1->next;
            }
            else
            {
                pre->next = l2;
                l2 = l2->next;
            }
            pre = pre->next;
        }
        pre->next = l1 == nullptr ? l2 : l1;

        return pHead->next;
    }
};

int main()
{
    Solution a;
    ListNode* list1 = new ListNode(1);
    list1->next = new ListNode(2);
    list1->next->next = new ListNode(4);
    //list1->next->next->next = new ListNode(7);

    ListNode* list2 = new ListNode(1);
    list2->next = new ListNode(3);
    list2->next->next = new ListNode(4);
    //list2->next->next->next = new ListNode(6);


    ListNode* pHead = a.mergeTwoLists(list1, list2);
    while (pHead != nullptr)
    {
        cout << pHead->val << endl;
        pHead = pHead->next;
    }
    return 0;
}
相关推荐
醍醐三叶4 小时前
C++类与对象--2 对象的初始化和清理
开发语言·c++
wuqingshun3141596 小时前
蓝桥杯 16. 外卖店优先级
c++·算法·职场和发展·蓝桥杯·深度优先
海绵宝宝贾克斯儿6 小时前
C++中如何实现一个单例模式?
开发语言·c++·单例模式
Epiphany.5566 小时前
素数筛(欧拉筛算法)
c++·算法·图论
龙湾开发6 小时前
计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 10.增强表面细节(二)法线贴图
c++·笔记·学习·图形渲染·贴图
whoarethenext7 小时前
c/c++的opencv的轮廓匹配初识
c语言·c++·opencv
爱吃涮毛肚的肥肥(暂时吃不了版)7 小时前
项目班——0510——JSON网络封装
c++·算法·json
apocelipes7 小时前
使用libdivide加速整数除法运算
c语言·c++·性能优化·linux编程
緈福的街口7 小时前
【leetcode】2900. 最长相邻不相等子序列 I
算法·leetcode·职场和发展
虾球xz7 小时前
游戏引擎学习第290天:完成分离渲染
c++·人工智能·学习·游戏引擎