Leetcode No.21 Merge Two Sorted Lists合并两个有序链表(c++实现)
2021/8/4 12:36:20
本文主要是介绍Leetcode No.21 Merge Two Sorted Lists合并两个有序链表(c++实现),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 题目
1.1 英文题目
Merge two sorted linked lists and return it as a sorted list. The list should be made by splicing together the nodes of the first two lists.
1.2 中文题目
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
1.3输入输出
输入 | 输出 |
---|---|
l1 = [1,2,4], l2 = [1,3,4] | [1,1,2,3,4,4] |
l1 = [], l2 = [] | [] |
l1 = [], l2 = [0] | [0] |
1.4 约束条件
- The number of nodes in both lists is in the range [0, 50].
- -100 <= Node.val <= 100
- Both l1 and l2 are sorted in non-decreasing order.
2. 分析
2.1 非递归算法
代码如下:
class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode head_node(0); ListNode* cur_node = &head_node; while (l1 != nullptr && l2 != nullptr) { if (l1->val < l2->val) { cur_node->next = l1; l1 = l1->next; } else { cur_node->next = l2; l2 = l2->next; } cur_node = cur_node->next; } cur_node->next = (l1 != nullptr ? l1 : l2); return head_node.next; } };
参考:https://leetcode.com/problems/merge-two-sorted-lists/discuss/9714/14-line-clean-C%2B%2B-Solution
2.2 递归算法
代码如下:
class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if (l1 == nullptr || (l2 != nullptr && l1->val > l2->val) ) {//为了让当前的l1始终小于l2 swap(l1, l2); } if (l1 != nullptr) { l1->next = mergeTwoLists(l1->next, l2);//将小的节点依次加入l1 } return l1; } };
参考:https://leetcode.com/problems/merge-two-sorted-lists/discuss/9814/3-lines-C%2B%2B-(12ms)-and-C-(4ms)
这篇关于Leetcode No.21 Merge Two Sorted Lists合并两个有序链表(c++实现)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-06Package Easy(基于 NSIS 的打包exe安装包工具)使用方法-icode9专业技术文章分享
- 2024-06-06基于 casdoor 的 ELK 开源登录认证解决方案: elk-auth-casdoor-icode9专业技术文章分享
- 2024-05-29Elasticsearch慢查询日志配置
- 2024-05-29揭秘华为如此多成功项目的产品关键——Charter模板
- 2024-05-29海外IDC业务拓展的7大挑战
- 2024-05-29InLine Chat功能优化对标Github Copilot,CodeGeeX带来更高效、更直观的编程体验!
- 2024-05-29CodeGeeX 智能编程助手 6 项功能升级,在Visual Studio插件市场霸榜2周!
- 2024-05-29AutoMQ 生态集成 Apache Doris
- 2024-05-292024年IDC行业的深度挖掘:机遇、挑战与未来展望
- 2024-05-29五款扩展组件齐发 —— Volcano、Keda、Crane-scheduler 等,邀你体验