题目分析:[[EVD]] - 剑指 Offer 25. 合并两个排序的链表
https://leetcode-cn.com/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof/
简单描述:
- 合并两个递增链表为新的递增链表
限制🚫
- 0 <= 链表长度 <= 1000
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
解题思路:
思路:
- #双指针 递增有序的情况下,指针l1、l2分别遍历两条链进行比较合并
效率:
- 时间复杂度
- 空间复杂度
代码:
class Solution
{
public:
/*双指针分别遍历2条链*/
ListNode *mergeTwoLists(ListNode *l1, ListNode *l2)
{
ListNode *res = new ListNode(-1), *r = res;
while (l1 && l2)
{
if (l1->val <= l2->val){
res->next = l1;
l1 = l1->next;
}
else{
res->next = l2;
l2 = l2->next;
}
res = res->next;
}
/*添加长链剩余的节点*/
res->next = l1 ? l1 : l2;
return r->next;
}
};