当前位置: 首页 > news >正文

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

21. 合并两个有序链表

https://leetcode.cn/problems/merge-two-sorted-lists/description/

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

在这里插入图片描述

/**
 * Definition for singly-linked list.
 * 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* list1, ListNode* list2) {
        ListNode *p1 = list1, *p2 = list2;
        ListNode* ans = new ListNode();
        ListNode* p3 = ans;

        while (p1 && p2) {
            if (p1->val > p2->val) {
                p3->next = p2;
                p2 = p2->next;
            } else {
                p3->next = p1;
                p1 = p1->next;
            }
            p3 = p3->next;
        }
        if (p1) {
            p3->next = p1;
        }
        if (p2) {
            p3->next = p2;
        }
        return ans->next;
    }
};

相关文章:

  • 基于deepseek的智能语音客服【第四讲】封装milvus数据库连接池封装
  • Spring事务和事务传播机制
  • 浏览器自动携带cookie注意事项
  • 12:表的内外连接
  • LVGL学习1
  • 数据库练习2
  • 图像回归评价的常用指标
  • 个人学习编程(3-22) leetcode刷题
  • C++智能指针详解
  • 蓝桥杯备赛 背包问题
  • [项目]基于FreeRTOS的STM32四轴飞行器: 十一.MPU6050配置与读取
  • 建筑安全员考试:“实战演练” 关键词助力的答题提升策略
  • Sqlite3数据库
  • 客服机器人怎么才能精准的回答用户问题?
  • Linux shell脚本-概述、语法定义、自定义变量、环境变量、预设变量、变量的特殊用法(转义字符、单双引号、大小括号)的验证
  • Labview和C#调用KNX API 相关东西
  • 《深度剖析:鸿蒙系统不同终端设备的UI自适应布局策略》
  • Linux系统管理与编程06:任务驱动综合应用
  • APIJSON快速入门
  • 西门子仿真实例位置
  • 国内锂矿“双雄”开局业绩PK:从巨亏中崛起,或深陷泥淖谋求多元转型
  • 澎湃读报丨解放日报8个版聚焦:牢记嘱托,砥砺奋进
  • “五一”逃离城市计划:带上帐篷去大自然里充电
  • 胸外科专家查出肺多发结节,说了一个可怕的事实……
  • 智能终端出海服务创新联合体成立
  • 史学巨擘的思想地图与学术路径——王汎森解析梁启超、陈寅恪、傅斯年