File tree Expand file tree Collapse file tree 1 file changed +57
-0
lines changed Expand file tree Collapse file tree 1 file changed +57
-0
lines changed Original file line number Diff line number Diff line change
1
+ /* *
2
+ * 풀이
3
+ * - 주어진 두 링크드리스트의 각 node를 비교하며 반환할 새 링크드리스트에 추가해줍니다
4
+ *
5
+ * Big O
6
+ * - N: 주어진 두 링크드리스트 list1, list2의 노드 개수의 총합
7
+ *
8
+ * - Time complexity: O(N)
9
+ * - Space complexity: O(1)
10
+ * - 반환하는 링크드리스트를 복잡도에 포함시키지 않을 시, 공간복잡도는 N에 상관 없이 일정합니다
11
+ */
12
+
13
+ /* *
14
+ * Definition for singly-linked list.
15
+ * struct ListNode {
16
+ * int val;
17
+ * ListNode *next;
18
+ * ListNode() : val(0), next(nullptr) {}
19
+ * ListNode(int x) : val(x), next(nullptr) {}
20
+ * ListNode(int x, ListNode *next) : val(x), next(next) {}
21
+ * };
22
+ */
23
+ class Solution {
24
+ public:
25
+ ListNode* mergeTwoLists (ListNode* list1, ListNode* list2) {
26
+ ListNode* head = new ListNode ();
27
+ ListNode* node = head;
28
+
29
+ ListNode* p = list1;
30
+ ListNode* q = list2;
31
+
32
+ while (p != nullptr && q != nullptr ) {
33
+ if (p->val < q->val ) {
34
+ node->next = p;
35
+ p = p->next ;
36
+ } else {
37
+ node->next = q;
38
+ q = q->next ;
39
+ }
40
+ node = node->next ;
41
+ }
42
+
43
+ while (p != nullptr ) {
44
+ node->next = p;
45
+ p = p->next ;
46
+ node = node->next ;
47
+ }
48
+
49
+ while (q != nullptr ) {
50
+ node->next = q;
51
+ q = q->next ;
52
+ node = node->next ;
53
+ }
54
+
55
+ return head->next ;
56
+ }
57
+ };
You can’t perform that action at this time.
0 commit comments