【LeetCode题解】21.Merge Two Sorted Lists
来源:互联网 发布:音箱推荐 知乎 编辑:程序博客网 时间:2024/04/30 02:27
题意为将两个已经排好序的链表合并为一个新的有序链表
可以用递归和非递归两种方法解决问题:
(1)非递归
首先需要创建一个新的链表,然后依次遍历两个链表,并将两个数组中较小的元素依次插入新链表中。
值得注意的是,若一个链表为空或已经遍历完全,则将另一个链表插入即可
class Solution {public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode *head = new ListNode(-1); ListNode *p1 = l1; ListNode *p2 = l2; ListNode *curNode = head; while(p1 && p2) { if( p1->val < p2->val ) { curNode->next = p1; curNode = curNode->next; p1 = p1->next; } else if(p2->val < p1->val ) { curNode->next = p2; curNode = curNode->next; p2 = p2->next; } else { curNode->next = p1; curNode = curNode->next; p1 = p1->next; curNode->next = p2; curNode = curNode->next; p2 = p2->next; } } if(p1) { curNode->next = p1; } if(p2) { curNode->next = p2; } return head->next; }};(2)递归
考虑,若链表l1为空,则返回l2链表;若l2链表为空,则返回l1链表
若两链表均非空,则比较链表l1和l2的第一个元素,若l1较小,则继续比较l1->next和l2的第一个元素大小,并返回l1
class Solution {public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if(l1 == NULL) { return l2; } if(l2 == NULL) { return l1; } if(l1->val < l2->val) { l1->next = mergeTwoLists(l1->next,l2); return l1; } if(l2->val <= l1->val) { l2->next = mergeTwoLists(l1,l2->next); return l2; } }};
0 0
- Leetcode题解 21. Merge Two Sorted Lists
- 【LeetCode题解】21.Merge Two Sorted Lists
- 【LeetCode题解】21.Merge Two Sorted Lists
- leetcode题解-21. Merge Two Sorted Lists
- Leetcode题解-21. Merge Two Sorted Lists
- leetcode题解-21. Merge Two Sorted Lists
- leetcode 题解 || Merge Two Sorted Lists 问题
- LeetCode题解:Merge Two Sorted Lists
- LeetCode题解:Merge Two Sorted Lists
- LeetCode题解:Merge Two Sorted Lists
- LeetCode题解-21-Merge Two Sorted Lists
- LeetCode题解(Week2):21. Merge Two Sorted Lists
- LeetCode 21. Merge Two Sorted Lists 题解 —— Java
- 21. Merge Two Sorted Lists leetcode(lists)
- [LeetCode]21.Merge Two Sorted Lists
- LeetCode --- 21. Merge Two Sorted Lists
- LeetCode 21.Merge Two Sorted Lists
- [Leetcode] 21. Merge Two Sorted Lists
- c语言的强制转换
- Jzzhu and Cities CodeForces
- socketChannel h5
- 文章标题
- 详解Unity 5 全局光照系统Enlighten问题(上)
- 【LeetCode题解】21.Merge Two Sorted Lists
- 双目摄像头标定参数
- ElemType是什么数据类型?
- lubuntu12.04设置静态IP
- 捉虫与寻龙:从0打造wordpress插件wp2oc staticblog (1) – 将wordpress贴子与owncloud网盘存储同步
- Code=-1016 “Request failed: unacceptable content-type:null
- Qt入门-layout布局
- math头里包含的函数
- Maven内置了三大特性:属性、Profile和资源过滤来支持构建的灵活性。