File tree Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Original file line number Diff line number Diff line change
1
+ // time: O(n+m) space: O(1)
2
+ class Solution {
3
+ func mergeTwoLists( _ list1: ListNode ? , _ list2: ListNode ? ) -> ListNode ? {
4
+ // 전처리
5
+ guard list1 != nil , list2 != nil else { return list1 ?? list2 }
6
+ // 변수 정의
7
+ var answer : ListNode ? = ListNode ( 0 )
8
+ var top : ListNode ? = answer
9
+ var list1 = list1
10
+ var list2 = list2
11
+ // 2개의 ListNode를 순회하면서 값을 보고 작은 순으로 저장 (ListNode에)
12
+ while list1 != nil && list2 != nil {
13
+ if let value1 = list1? . val, let value2 = list2? . val {
14
+ if value1 < value2 {
15
+ answer? . next = ListNode ( value1)
16
+ list1 = list1? . next
17
+ }
18
+ else {
19
+ answer? . next = ListNode ( value2)
20
+ list2 = list2? . next
21
+ }
22
+ answer = answer? . next
23
+ }
24
+ }
25
+ // 남은 노드들 연결하기
26
+ answer? . next = list1 ?? list2
27
+ return top? . next
28
+ }
29
+ }
You can’t perform that action at this time.
0 commit comments