leetcode 21.合并两个有序链表

⭐️ 往期相关文章

💫链接1:链表中倒数第k个结点(快慢指针问题)
💫链接2:leetcode 876.链表的中间结点(快慢指针问题)
💫链接3:leetcode 206.反转链表
💫链接4:leetcode 203.移除链表元素
💫链接5:数据结构-手撕单链表+代码详解


⭐️ 题目描述

在这里插入图片描述

🌟 leetcode链接:合并两个有序链表

1️⃣
思路1:准备一个新的链表(不带哨兵卫的头),判断两个链表当前结点元素谁小,小的尾插到新的链表。

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*//*思路1:准备一个新的链表(不带哨兵卫的头),判断两个链表当前结点元素谁小,小的尾插到新的链表。
*/
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){// 特殊情况:当一个链表为空,另一个有结点,下面循环进不去。 // error:tail = NULL  -> NULL -> nextif (list1 == NULL) {return list2;}if (list2 == NULL) {return  list1;}struct ListNode* head = NULL;// 为当前新链表准备一个尾,方便尾插 不用每次找尾struct ListNode* tail = NULL;// 遍历两个链表 其中一个链表结束循循环就结束while (list1 != NULL && list2 != NULL) {if (list1->val < list2->val) {// 链表1 < 链表2的情况// 把链表1当前结点尾插到新链表// 特殊情况:第一次新链表为 NULLif (head == NULL) {head = tail = list1;} else {tail->next = list1;tail = tail->next;}// 迭代list1 = list1->next;} else {// 连表2 >= 链表1的情况// 把链表2当前结点尾插到新链表// 特殊情况:第一次新链表为 NULLif (head == NULL) {head = tail = list2;} else {tail->next = list2;tail = tail->next;}list2 = list2->next;}}// 来到这里其中一个链表为空 一个链表还有剩余元素if (list1) {tail->next = list1;} else {tail->next = list2;}return head;
}

2️⃣
思路2:准备一个新的链表(带哨兵卫的头),判断两个链表当前结点元素谁小,小的尾插到新的链表。

/*思路2:准备一个新的链表(带哨兵卫的头),判断两个链表当前结点元素谁小,小的尾插到新的链表。
*/
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){struct ListNode* head = NULL;struct ListNode* tail = NULL;// 哨兵卫的头结点head = tail = (struct ListNode*)malloc(sizeof(struct ListNode));head->next = NULL;// 遍历两个链表 其中一个链表结束循循环就结束while (list1 != NULL && list2 != NULL) {if (list1->val < list2->val) {// 尾插到新链表中tail->next = list1;tail = tail->next;list1 = list1->next;} else {// 尾插到新链表中tail->next = list2;tail = tail->next;list2 = list2->next;}}// 一个链表为空 一个链表剩余的元素连接到尾处if (list1) {tail->next = list1;} else {tail->next = list2;}return head->next;
}

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ入门指南

人生永没有终点。只有等到你瞑目的那一刻&#xff0c;才能说你走完了人生路&#xff0c;在此之前&#xff0c;新的第一次始终有&#xff0c;新的挑战依然在&#xff0c;新的感悟不断涌现。 文章目录 一、MQ与RabbitMQ概述1. MQ简述2. MQ的优势3. MQ的劣势4. 常见的MQ产品5. Rab…

FastDFS【SpringBoot操作FastDFS、复习】(三)-全面详解(学习总结---从入门到深化)

目录 SpringBoot操作FastDFS 复习&#xff1a; SpringBoot操作FastDFS 由GitHub大牛tobato在原作者YuQing与yuqih发布的JAVA客户端基 础上进行了大量重构工作&#xff0c;并于GitHub上发布了FastDFS-Client1.26.5。 主要特性 1 对关键部分代码加入了单元测试&#xff0c;便于…

使用家庭宽带和摄像头,实现公网直播

那天去逛商场看到有个营业厅&#xff0c;本想进去问问有没有存话费送话费的活动&#xff0c;结果被忽悠办了一个19.9升千兆宽带加送一个路由器的业务。 网络环境验证 听他们说现在家庭宽带都是有公网IPV6地址的&#xff0c;立马用电脑试了下确实有IPV6地址。 赶紧随便写了几行…

C++ 数据结构图(1)

1. 图的基本概念 图是由顶点集合及顶点间的关系组成的一种数据结构&#xff1a;G (V&#xff0c; E) &#xff0c;其中&#xff1a; 顶点集合 V {x|x 属于某个数据对象集 } 是有穷非空集合 &#xff1b; E {(x,y)|x,y 属于 V} 或者 E {<x, y>|x,y 属于 V &&…

那些无法避免的弯路

近日&#xff0c;某高校毕业生在校期间窃取学校内网数据&#xff0c;收集全校学生个人隐私信息的新闻引发了人们对互联网生活中个人信息安全问题的再度关注。在大数据时代&#xff0c;算法分发带来了隐私侵犯&#xff0c;在享受消费生活等便捷权利的同时&#xff0c;似乎又有不…

Lion:闭源大语言模型的对抗蒸馏

Lion&#xff1a;闭源大语言模型的对抗蒸馏 Lion&#xff0c;由香港科技大学提出的针对闭源大语言模型的对抗蒸馏框架&#xff0c;成功将 ChatGPT 的知识转移到了参数量 7B的 LLaMA 模型&#xff08;命名为 Lion&#xff09;&#xff0c;在只有 70k训练数据的情况下&#xff0…

84、基于stm32单片机超市自助存储柜快递箱系统设计(程序+原理图+流程图+参考论文+开题报告+任务书+设计资料+元器件清单等)

单片机主芯片选择方案 方案一&#xff1a;AT89C51是美国ATMEL公司生产的低电压&#xff0c;高性能CMOS型8位单片机&#xff0c;器件采用ATMEL公司的高密度、非易失性存储技术生产&#xff0c;兼容标准MCS-51指令系统&#xff0c;片内置通用8位中央处理器(CPU)和Flash存储单元&a…

select 框添加树结构(todu)

1. 案例: 2. 代码 下班了&#xff0c;明天写

短视频seo矩阵+抖音小程序源码开发解决方案(一)

该解决方案主要针对产品用户交易决策周期长/非标定制等情况的企业&#xff0c;如&#xff1a;房产、汽车、金融、咨询服务&#xff0c;广告设计、网络科技公司&#xff0c;TOB类销售行业等。 基于不同的经营场景&#xff0c;解决方案全面更新&#xff0c;新增账号管理&#xf…

【嵌入式Qt开发入门】如何使用Qt进行文本读写——QFile读写文本

在很多时候我们需要读写文本文件进行读写&#xff0c;比如写个 Mp3 音乐播放器需要读 Mp3 歌词里的文本&#xff0c;比如修改了一个 txt 文件后保存&#xff0c;就需要对这个文件进行读写操作。本文介绍简单的文本文件读写&#xff0c;内容精简&#xff0c;让大家了解文本读写的…

JavaWeb 速通HTML(常用标签汇总及演示)

目录 一、拾枝杂谈 1.网页组成 : 1 结构 2 表现 3 行为 2.HTML入门 : 1 基本介绍 2.基本结构 : 3.HTML标签 : 1 基本说明 2 注意事项 二、常用标签汇总及演示 1.font标签 : 1 定义 2 演示 2.字符实体 : 1 定义 2 演示 3.标题标签 : 1 定义 2 演示 4. 超链接标签 : 1…

2023年07月在线IDE流行度最新排名

点击查看最新在线IDE流行度最新排名&#xff08;每月更新&#xff09; 2023年07月在线IDE流行度最新排名 TOP 在线IDE排名是通过分析在线ide名称在谷歌上被搜索的频率而创建的 在线IDE被搜索的次数越多&#xff0c;人们就会认为它越受欢迎。原始数据来自谷歌Trends 如果您相…