File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change
1
+ package leetcode_study
2
+
3
+ /*
4
+ * 오름차순으로 정렬된 두 노드 리스트를 크기 순서대로 병합하는 문제
5
+ * 기준 노드와 다음 노드를 가리키는 포인터 노드를 상용해 문제 해결
6
+ * 시간 복잡도: O(n)
7
+ * -> 주어진 두 노드 숫자만큼 순회
8
+ * 공간 복잡도: O(1)
9
+ * */
10
+ fun mergeTwoLists (list1 : ListNode ? , list2 : ListNode ? ): ListNode ? {
11
+ val resultNode = ListNode (0 )
12
+ var currentNode = resultNode
13
+
14
+ var firstCurrentNode = list1
15
+ var secondCurrentNode = list2
16
+
17
+ while (firstCurrentNode != null && secondCurrentNode != null ) {
18
+ if (firstCurrentNode.value <= secondCurrentNode.value) {
19
+ currentNode.next = ListNode (firstCurrentNode.value)
20
+ firstCurrentNode = firstCurrentNode.next
21
+ } else {
22
+ currentNode.next = ListNode (secondCurrentNode.value)
23
+ secondCurrentNode = secondCurrentNode.next
24
+ }
25
+ currentNode = currentNode.next!!
26
+ }
27
+
28
+ if (firstCurrentNode != null ) {
29
+ currentNode.next = firstCurrentNode
30
+ } else if (secondCurrentNode != null ) {
31
+ currentNode.next = secondCurrentNode
32
+ }
33
+ return resultNode.next
34
+ }
35
+
36
+
37
+ class ListNode (
38
+ var value : Int ,
39
+ ) {
40
+ var next: ListNode ? = null
41
+ }
You can’t perform that action at this time.
0 commit comments