Daily LeetCode Challenge - 530. Minimum Absolute Difference in BST

Min Young Kim·2023년 6월 14일
0

algorithm

목록 보기
172/198

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
    }
}
profile
길을 찾는 개발자

0개의 댓글