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