Problem
두 ListNode
를 받으면 합쳐서 오름차순으로 정리된 ListNode
를 return 하면 됩니다.
Solution
return 값이 ListNode
라는 걸 이용해서 재귀로 뒤에 붙이면 됩니다.
Java Code
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if (l1 == null) return l2;
if (l2 == null) return l1;
if (l1.val < l2.val) {
l1.next = mergeTwoLists(l1.next, l2);
return l1;
} else {
l2.next = mergeTwoLists(l1, l2.next);
return l2;
}
}
}
Kotlin Code
class Solution {
fun mergeTwoLists(l1: ListNode?, l2: ListNode?): ListNode? = when {
l1 == null -> l2
l2 == null -> l1
l1.`val` < l2.`val` -> l1.apply { next = mergeTwoLists(l1.next, l2) }
else -> l2.apply { next = mergeTwoLists(l1, l2.next) }
}
}
'알고리즘 문제 > LeetCode' 카테고리의 다른 글
[LeetCode Easy] First Unique Character in a String (Java, Kotlin) (0) | 2020.11.24 |
---|---|
[LeetCode Easy] Pascal's Triangle (Java) (0) | 2020.11.24 |
[LeetCode Easy] Roman to Integer (Java) (0) | 2020.11.21 |
[LeetCode Easy] Contains Duplicate (Java, Kotlin) (0) | 2020.11.21 |
[LeetCode Easy] Valid Anagram (Java, Kotlin) (0) | 2020.11.21 |