当前位置:网站首页>【21. 合并两个有序链表】
【21. 合并两个有序链表】
2022-06-22 19:41:00 【爱吃榴莲的喵星人】
一、题目描述
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。


二、提供方便走读代码的图

三、题目代码
写法一:
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){
struct ListNode* head=NULL;
struct ListNode* tail=NULL;
if(list1==NULL)
return list2;
if(list2==NULL)
return list1;
while(list1&&list2)
{
if(list1->val < list2->val)
{
if(head==NULL)
{
head=tail=list1;
}
else
{
tail->next=list1;
tail=tail->next;
}
list1=list1->next;
}
else
{
if(head==NULL)
{
head=tail=list2;
}
else
{
tail->next=list2;
tail=tail->next;
}
list2=list2->next;
}
}
if(list1!=NULL)
{
tail->next=list1;
}
if(list2!=NULL)
{
tail->next=list2;
}
return head;
}
写法二:带头结点
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){
struct ListNode* head=(struct ListNode*)malloc(sizeof(struct ListNode));
struct ListNode* tail=head;
if(list1==NULL)
return list2;
if(list2==NULL)
return list1;
while(list1&&list2)
{
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!=NULL)
{
tail->next=list1;
}
if(list2!=NULL)
{
tail->next=list2;
}
struct ListNode* list=head->next;
free(head);
return list;
}
以上是本篇文章的全部内容,如果文章有错误或者有看不懂的地方,多和喵博主交流。互相学习互相进步。如果这篇文章对你有帮助,可以给喵博主一个关注,你们的支持是我最大的动力。
边栏推荐
- 79-不要看到有order by xxx desc就创建desc降序索引-文末有赠书福利
- 扩展Ribbon支持Nacos权重的三种方式
- Scheduling with Testing
- PlainSelect.getGroupBy()Lnet/sf/jsqlparser/statement/select/GroupByElement;
- 扩展Ribbon支持基于元数据的版本管理
- 深度学习常用损失函数总览:基本形式、原理、特点
- 农产品期货开户
- Moke 5. Service discovery -nacos
- Implementation of UART with analog serial port
- 慕课6、实现负载均衡-Ribbon
猜你喜欢

Remote access to raspberry pie via the Internet.

MySQL advanced (II)

Easyclick fixed status log window

深度学习常用损失函数总览:基本形式、原理、特点

R语言penguins数据集可视化
Oracle system/用户被锁定的解决方法

R language usarrests dataset visualization

Visualization of R language nutrient dataset

R language organdata dataset visualization

怎样实现网页端im即时通讯中的@人功能
随机推荐
uniapp小程序商城开发thinkphp6积分商城、团购、秒杀 封装APP
深度学习常用损失函数总览:基本形式、原理、特点
阿里云视频点播播放出错,控制台访问出现code:4400
百家讲坛 雍正十三年(下部)
底部菜单添加的链接无法跳转到二级页面的问题
Feign常见问题总结
【剑指Offer】面试题44.数字序列中的某一位数字
R语言 co2数据集 可视化
让知识付费系统视频支持M3U8格式播放的方法
MySQL Basics - functions
怎样实现网页端im即时通讯中的@人功能
Feign FAQ summary
苹果GCD源代码
已解决:一个表中可以有多个自增列吗
已解决:一個錶中可以有多個自增列嗎
扩展Ribbon支持基于元数据的版本管理
慕课6、实现负载均衡-Ribbon
采用网络远程访问树莓派。
[proteus simulation] NE555 delay circuit
性能测试(一)