力扣OJ算法题:合并两个有序链表

news2024/10/23 11:13:34

——————————————————————————————————————————

正文开始

OJ算法题:合并两个有序链表

思路

创建一个新的空链表(可以用malloc优化)和两个指针L1、L2分别指向两个链表,遍历两个链表,L1和L2进行比较(比小),哪个小就把哪个放到新链表进行尾插

解题过程

运用两个指针L1和L2
while循环遍历两个链表

Code

 //这题真优雅,巧妙运用malloc创建一个有效的节点,避免了每次都要判空
 typedef struct ListNode ListNode;
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {
    //判空(你被优化了)
    if(list1 == NULL)
    {
        return list2;
    }
    if(list2 == NULL)
    {
        return list1;
    }

    //创建两个链表的指针
    ListNode* l1 = list1;
    ListNode* l2 = list2;
    //创建空链表
    ListNode* newHead,*newTail;
    //newHead = newTail = NULL;
    newHead = newTail = (ListNode*)malloc(sizeof(ListNode));

    while(l1 && l2)
    {
        if(l1->val < l2->val)
        {
            newTail->next = l1;
            newTail = newTail->next;
            l1 = l1->next;
        }else{
            newTail->next = l2;
            newTail = newTail->next;
            l2 = l2->next;
        }
    }
    //跳出循环有两种情况:要么l1走到空了,要么l2走到空了
    if(l2)
    {
        newTail->next = l2;
    }
    if(l1)
    {
        newTail->next = l1;
    }
    //动态申请的空间手动释放掉
    ListNode* ret = newHead->next;
    free(newHead);
    newHead = NULL;
    return ret;
}

———————————————————————————————————————————

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2221533.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python poetry包管理的安装和使用

目录 设置国内(清华)镜像源和升级pip 安装poetry pycharm中使用 常用的poetry命令 本文背景为已经安装好python 设置国内(清华)镜像源和升级pip pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple python -m pip install --upgrade pip 安装po…

【峟思仪器】高边坡安全监测起到哪些作用

高边坡安全监测起到哪些作用?在当今的工程建设领域&#xff0c;高边坡监测犹如一道坚实的安全防线&#xff0c;其重要性不容小觑。无论是大型水利工程&#xff0c;还是交通基础设施建设&#xff0c;高边坡的稳定性都直接关系到工程的安全和周边环境的安危。高边坡监测在工程建…

在Debian上安装向日葵

说明&#xff1a; 因为之前服务器上安装了 PVE (Proxmox VE)&#xff0c;之前是用 Proxmox VE 进行服务器资源管理的。出于某些原因&#xff0c;现在不再通过 PVE构建的虚拟机来使用计算资源&#xff0c;而是通过 PVE 自带的 Debian 系统直接使用虚拟机资源&#xff08;因为积…

使用Python抓取房源信息

1. 引言 在当今大数据时代&#xff0c;网络爬虫成为获取信息的重要手段之一。本文将以某家二手房为例&#xff0c;演示如何使用Python爬虫抓取房源信息&#xff0c;并将这些信息保存到Excel文件中。 目标网站 2. 准备工作 2.1 安装必要的库 在开始之前&#xff0c;请确保你…

银行客户贷款行为数据挖掘与分析

#1024程序员节 | 征文# 在新时代下&#xff0c;消费者的需求结构、内容与方式发生巨大改变&#xff0c;企业要想获取更多竞争优势&#xff0c;需要借助大数据技术持续创新。本文分析了传统商业银行面临的挑战&#xff0c;并基于knn、逻辑回归、人工神经网络三种算法&#xff0…

【在Linux世界中追寻伟大的One Piece】Socket编程UDP

目录 1 -> UDP网络编程 1.1 -> V1版本 -echo server 1.2 -> V2版本 -DictServer 1.3 -> V2版本 -DictServer(封装版) 1 -> UDP网络编程 1.1 -> V1版本 -echo server 简单的回显服务器和客户端代码。 备注&#xff1a;代码中会用到地址转换函数。 noc…

Java面试题库——多线程

1.并行和并发有什么区别&#xff1f; 并行&#xff1a;是指两个或多个事件在同一时刻发生&#xff0c;是在不同实体上的多个事件&#xff1b; 并发&#xff1a;是指两个或多个事件在同一时间间隔发生&#xff0c;是同一实体上的多个事件。2.线程和进程的区别&#xff1f; 根本…

数据结构修炼——常见的排序算法:插入/希尔/选择/堆排/冒泡/快排/归并/计数

目录 一、常见的排序算法二、常见排序算法的实现2.1 排序算法回顾2.1.1 冒泡排序2.1.2 堆排序 2.2 直接插入排序2.3 希尔排序2.4 选择排序2.5 快速排序2.5.1 快速排序&#xff08;霍尔法&#xff09;2.5.2 快速排序&#xff08;挖坑法&#xff09;2.5.3 快速排序&#xff08;前…

极客wordpress模板

这是一个展示WordPress主题的网页设计。页面顶部有一个导航栏&#xff0c;包含多个选项&#xff0c;如“关于我们”、“产品中心”、“案例展示”、“新闻动态”、“联系我们”和“技术支持”。页面中间部分展示了多个产品&#xff0c;每个产品都有一个图片和简短的描述。页面下…

【Linux】冯诺依曼体系结构 OS的概念

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 主厨&#xff1a;邪王真眼 主厨的主页&#xff1a;Chef‘s blog 所属专栏&#xff1a;青果大战linux 总有光环在陨落&#xff0c;总有新星在闪烁 前言废话&#xff1a…

动态链接过程分析

目录 一、前言二、示例程序三、动态库的加载过程1、动态链接器加载动态库2、动态库的加载地址 四、符号重定位1、全局符号表2、全局偏移表 GOT3、liba.so 动态库文件的布局4、liba.so 动态库的虚拟地址5、GOT 表的内部结构6、反汇编 liba.so 代码 五、补充1、延迟绑定 plt 上文…

【ARM】ARM架构参考手册_Part B 内存和系统架构(5)

目录 5.1关于缓存和写缓冲区 5.2 Cache 组织 5.2.1 集联性&#xff08;Set-associativity&#xff09; 5.2.2 缓存大小 5.3 缓存类型 5.3.1 统一缓存或分离缓存 5.3.2 写通过&#xff08;Write-through&#xff09;或写回&#xff08;Write-back&#xff09;缓存 5.3.3…

基于R语言机器学习遥感数据处理与模型空间预测技术及实际项目案例分析

随机森林作为一种集成学习方法&#xff0c;在处理复杂数据分析任务中特别是遥感数据分析中表现出色。通过构建大量的决策树并引入随机性&#xff0c;随机森林在降低模型方差和过拟合风险方面具有显著优势。在训练过程中&#xff0c;使用Bootstrap抽样生成不同的训练集&#xff…

Linux环境配置(学生适用)

1.挑选最便宜的云服务器 如腾讯云服务器&#xff0c;华为云服务器&#xff0c;百度云服务器等等…… 2.找到你的云服务器实例&#xff0c;然后找到你的公网IP。 3.云服务器实例 ---更多 --- 重置root密码 (一定要重置&#xff09; 4. 下载并安装 xshell 或者其他登陆软件 xshel…

12. 命令行

Hyperf 的命令行默认由 hyperf/command 组件提供&#xff0c;而该组件本身也是基于 symfony/console 的抽象。 一、安装 通常来说该组件会默认存在&#xff0c;但如果您希望用于非 Hyperf 项目&#xff0c;也可通过下面的命令依赖 hyperf/command 组件。 composer require hype…

告别ELK,APO提供基于ClickHouse开箱即用的高效日志方案——APO 0.6.0发布

ELK一直是日志领域的主流产品&#xff0c;但是ElasticSearch的成本很高&#xff0c;查询效果随着数据量的增加越来越慢。业界已经有很多公司&#xff0c;比如滴滴、B站、Uber、Cloudflare都已经使用ClickHose作为ElasticSearch的替代品&#xff0c;都取得了不错的效果&#xff…

【Golang】Go语言中如何创建Cron定时任务

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

MySQL【知识改变命运】11

联合查询 6. ⼦查询6.1 语法6.2 单⾏⼦查询6.3 多⾏⼦查询6.4 多列⼦查询6.5 在from⼦句中使⽤⼦查询 7. 合并查询7.1 创建新表并初始化数据7.2 Union7.3 Union all 8. 插⼊查询结果8.1 语法8.2 ⽰例 6. ⼦查询 ⼦查询是把⼀个SELECT语句的结果当做别⼀个SELECT语句的条件&…

10.22 MySQL

存储过程 存储函数 存储函数是有返回值的存储过程&#xff0c;存储函数的参数只能是in类型的。具体语法如下&#xff1a; characteristic 特性 练习&#xff1a; 从1到n的累加 ​​​​​​ create function fun1(n int) returns int deterministic begindeclare total i…

制氮机分子筛的作用

制氮机作为一种重要的工业设备&#xff0c;广泛应用于食品、饮料、化学、石油、电子和医疗保健等多个行业。其核心组件之一——分子筛。本文将详细探讨制氮机分子筛的作用及其重要性。 一、分子筛的基本概念 分子筛是一种具有均匀孔径的多孔材料&#xff0c;常用于气体分离和纯…