闯关leetcode——21. Merge Two Sorted Lists
大纲
- 题目
- 地址
- 内容
- 解题
- 代码地址
题目
地址
https://leetcode.com/problems/merge-two-sorted-lists/description/
内容
You are given the heads of two sorted linked lists list1 and list2.
Merge the two lists into one sorted list. The list should be made by splicing together the nodes of the first two lists.
Return the head of the merged linked list.
Example 1:
Input: list1 = [1,2,4], list2 = [1,3,4]
Output: [1,1,2,3,4,4]
Example 2:
Input: list1 = [], list2 = []
Output: []
Example 3:
Input: list1 = [], list2 = [0]
Output: [0]
Constraints:
- The number of nodes in both lists is in the range [0, 50].
- -100 <= Node.val <= 100
- Both list1 and list2 are sorted in non-decreasing order.
解题
这题就是要将两个从小到大已排序好的链表合并成一个仍然从小到大排序的链表。
这题没什么解题技巧,就是链表操作练习。
唯一的边界就是:某条链表遍历完后,要将另外一条链表的后续元素连接上。
class Solution {
public:ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {ListNode dummyHead;ListNode* current = &dummyHead;while (list1 != nullptr && list2 != nullptr) {if (list1->val < list2->val) {current->next = list1;list1 = list1->next;} else {current->next = list2;list2 = list2->next;}current = current->next;}if (list1 == nullptr) {current->next = list2;} else if (list2 == nullptr) {current->next = list1;} return dummyHead.next;}
};
代码地址
https://github.com/f304646673/leetcode/tree/main/21-Merge-Two-Sorted-Lists