一. 题目信息
1. 描述
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 题目链接:https://leetcode-cn.com/problems/merge-two-sorted-lists/
2. 示例
输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]
二. 解法
1. 迭代
①. 复杂度分析
②. c++解法
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
ListNode* head = nullptr;
ListNode* tail = nullptr;
while (l1 || l2) {
int value = 0;
if (l1 && l2) {
if (l1->val <= l2->val) {
value = l1->val;
l1 = l1->next;
} else {
value = l2->val;
l2 = l2->next;
}
} else if (l1) {
value = l1->val;
l1 = l1->next;
} else {
value = l2->val;
l2 = l2->next;
}
if (!head) {
head = tail = new ListNode(value);
} else {
tail->next = new ListNode(value);
tail = tail->next;
}
}
return head;
}
};
|