单链表OJ题:LeetCode--21.合并两个有序链表

news/2024/11/8 2:40:41/

朋友们、伙计们,我们又见面了,今天给大家带来的是LeetCode中21题:合并两个有序链表

数 据 结 构:数据结构专栏
作          者:stackY、

C  语   言  :C语言专栏

LeetCode :LeetCode刷题训练营

LeetCode--21.合并两个有序链表 :https://leetcode.cn/problems/merge-two-sorted-lists/description/

目录

1.题目介绍

2.实例演示 

 3.解题思路


1.题目介绍

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

2.实例演示 

 

 3.解题思路

合并两个有序链表我们通常采用的方法是遍历两个链表,然后取较小的结点进行尾插,尾插法和我们之前见到过的OJ题:删除链表元素中使用的方法很相似,当然这里也是要区分第一次尾插和接下来的尾插,如果有一个链表为空那么直接返回另外一个链表的头结点,如果两个链表都不为空,这时如果一个结点尾插完了,另外一个结点还没有结束,这时就不需要在依次尾插,直接将剩下的结点链接在后面即可:

代码演示:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){struct ListNode* phead1 = list1;struct ListNode* phead2 = list2;//新的头和新的尾struct ListNode* newhead = NULL;struct ListNode* tail = NULL;//有一个链表为空则返回其它链表的头if(phead1 == NULL){return phead2;}if(phead2 == NULL){return phead1;}//正常情况while(phead1 && phead2){//小的进行尾插if(phead1->val > phead2->val){//第一次尾插if(tail == NULL){newhead = tail = phead2;}else{//尾插tail->next = phead2;//更新尾tail = tail->next;}//迭代phead2 = phead2->next;}else{if(tail == NULL){newhead = tail = phead1;}else{tail->next = phead1;tail = tail->next;}phead1 = phead1->next;}}//一个链表尾插完之后将剩下的直接链接在尾的后面if(phead1 == NULL){tail->next = phead2;}if(phead2 == NULL){tail->next = phead1;}return newhead;
}

今天的博客就分享到这里,喜欢的老铁留下你的三连,感谢感谢!我们下期再见!! 


http://www.ppmy.cn/news/67955.html

相关文章

元宇宙又“死”了!Epic老板:你当6亿用户是摆设?

“扎克伯格花了数年时间试图让Metaverse成为现实,但现在它已被AI取代,并走向科技创意的坟墓。”一篇表达“元宇宙已死”的文章近期在推特上引发热议,而游戏制作公司Epic Games CEO Tim Sweeney的还击更是让这个话题热上加热。 “搞一次在线守…

pytorch中backward()函数与gradient 参数详解

矩阵乘法的例子1 以下例来说明backward中参数gradient的作用 注意在本文中表示矩阵乘法,*表示对应元素相乘 求A求偏导 试运行代码1 import torch# [1,2][2*3][1,3] A torch.tensor([[1., 2.]], requires_gradTrue) B torch.tensor([[10., 20., 30.], [100., 20…

亚马逊云科技推出Matter PKI合规指导手册

亚马逊云科技推出Matter公钥基础设施(Public Key Infrastructure,PKI)合规指导手册,帮助客户使用Amazon Private Certificate Authority(Amazon Private CA)证书服务构建符合Matter要求的PKI证书体系,加快客…

检测数据类型

//typeof() 对于基本数据类型没问题,遇到引用数据类型不管用 console.log(typeof 666) //number console.log(typeof [1,2,3]) //object //instanceof() 只能判断引用数据类型,不能判断基本数据类型 console.log( [] instanceof Array) //true …

【Midjourney】Midjourney 连续性人物创作 ④ ( 使用 URL + Seed 随机种子生成连续性的人物 )

文章目录 一、生成图片并获取 Seed二、使用 URL Seed 随机种子生成连续性的人物 使用 URL 链接 和 Seed 随机种子 生成连续性人物 , 必须先生成一组图片 , 然后按 U 按钮 , 选择一张大图 , 之后所有的连续性人物图片都基于该图片进行生成 ; 使用 URL Seed 随机种子生成连续性…

基于R语言APSIM模型高级应用及批量模拟实践技术

查看原文>>>基于R语言APSIM模型高级应用及批量模拟实践技术 随着数字农业和智慧农业的发展,基于过程的农业生产系统模型在模拟作物对气候变化的响应与适应、农田管理优化、作物品种和株型筛选、农田固碳和温室气体排放等领域扮演着越来越重要的作用。APSIM…

【Leetcode -455.分发饼干 -459.重复的字符串】

Leetcode Leetcode -455.分发饼干Leetcode - 459.重复的字符串 Leetcode -455.分发饼干 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩…

【MyBatis】搞懂 MyBatis 的事务管理机制

文章目录 前言一、事务概述二、MyBatis 实现事务的方式1. 编程式事务2. 声明式事务 三、事务源码理解(1)TransactionFactory(2)JdbcTransaction(3)ManagedTransaction 四、测试用例总结 前言 MyBatis 是一…