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

【力扣 简单 C】21. 合并两个有序链表

目录

题目

解法一:迭代

解法二:递归


题目

解法一:迭代

struct ListNode* merge(struct ListNode* list1, struct ListNode* list2)
{struct ListNode* virHead = malloc(sizeof(*virHead));struct ListNode* preNode = virHead;while (list1 && list2){if (list1->val < list2->val){preNode->next = list1;list1 = list1->next;}else{preNode->next = list2;list2 = list2->next;}preNode = preNode->next;}preNode->next = list1 ? list1 : list2;struct ListNode* head = virHead->next;free(virHead);return head;
}struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2)
{return merge(list1, list2);
}

解法二:递归

void swap(struct ListNode** list1, struct ListNode** list2)
{struct ListNode* tmp = *list1;*list1 = *list2;*list2 = tmp;
}struct ListNode* merge(struct ListNode* list1, struct ListNode* list2)
{if (!list1)return list2;if (!list2)return list1;if (list1->val > list2->val)swap(&list1, &list2);list1->next = merge(list1->next, list2);return list1;
}struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2)
{return merge(list1, list2);
}

相关文章:

  • Rabbitmq后台无法登录问题解决
  • android:foregroundServiceType详解
  • 力扣HOT100之技巧:169. 多数元素
  • 代码随想录算法训练营day2
  • 图像匹配算法 笔记2025
  • day53 神经网络调参指南
  • Packagerun:VSCode 扩展 快捷执行命令
  • ajax访问阿里云天气接口,获取7天天气
  • 相机Camera日志实例分析之三:相机Camx【视频光斑人像录制】单帧流程日志详解
  • JSON 与 AJAX
  • 安装配置以太链钱包工具
  • 解决 PyTorch 与 Python 3.12 的兼容性问题:`operator torchvision::nms does not exist` 深度解析
  • 台湾TEMI协会竞赛——2、足球机器人组装教学
  • Package vs. Directory (包 vs. 目录)
  • 机器人坐标变换TF(ROS Transform)示例解释
  • AWS-EFS
  • C++之容器适配器介绍 以及 STL--stack queue deque
  • Postgresql日常使用
  • Redis缓存三大难题:穿透、击穿、雪崩
  • FastDFS分布式储存
  • 北京模板网站建站/广告公司推广文案
  • 讯响模板网站/外链下载
  • 网站建设的盈利模式/十大免费最亏的免费app
  • 手机网站建设 cms/发帖推广哪个平台好
  • 资深网站/seo基础教程视频
  • 动画网站源码/关键词优化骗局