The solutions for LeetCode problems in C++ and Python.
LinkedList
No.21 Merge Two Sorted Lists
“Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.”
Time Complexity: O(m+n)
Space Complexity: O(1)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(nullptr) {}
};
class Solution {
public:
ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {
ListNode *dummy = new ListNode(0);
ListNode *tail = dummy;
while (l1 && l2) {
if (l1->val < l2->val) {
tail->next = l1;
l1 = l1->next;
} else {
tail->next = l2;
l2 = l2->next;
}
tail = tail->next;
}
tail->next = l1 ? l1 : l2;
return dummy->next;
}
};
1 | class ListNode: |
No.83 Remove Duplicates from Sorted List
“Given a sorted linked list, delete all duplicates such that each element appear
only once.”
1 | struct ListNode { |
1 | class ListNode: |