Problem From.
https://leetcode.com/problems/minimum-absolute-difference-in-bst/
오늘 문제는 이진트리가 주어질때, 각각의 원소들의 차이의 절대값 중에 가장 작은 수를 반환하는 문제였다.
먼저 이진트리를 모두 탐색하며 모든 원소를 다 리스트에 넣어주고, 그 리스트를 순회하면서 차이의 절대값을 구하면 되는 문제였다.
/**
* Example:
* var ti = TreeNode(5)
* var v = ti.`val`
* Definition for a binary tree node.
* class TreeNode(var `val`: Int) {
* var left: TreeNode? = null
* var right: TreeNode? = null
* }
*/
import java.util.*
class Solution {
fun getMinimumDifference(root: TreeNode?): Int {
var answer = Int.MAX_VALUE
val list = mutableListOf<Int>()
val queue : Queue<TreeNode> = LinkedList()
queue.add(root!!)
while(queue.isNotEmpty()) {
val node = queue.poll()
list.add(node.`val`)
node.left?.let {
queue.add(it)
}
node.right?.let {
queue.add(it)
}
}
list.sort()
for(i in 1 until list.size) {
answer = Math.min(answer, list[i] - list[i - 1])
}
return answer
}
}