Algorithm/java tip

530. Minimum Absolute Difference in BST

개구리는 개꿀개꿀 2021. 3. 13. 15:41

leetcode.com/problems/minimum-absolute-difference-in-bst/

 

Minimum Absolute Difference in BST - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

/*
    Tree의 value들 간에 차이가 가장 작은 값
    Tree 순회
    - prenoder : self, left, right
    - inorder : left, self, right
    - postorder : left, right, self
    이진트리의 성질 
    - inorder -> 오름차순 정렬이 됨
    - 두번째 노드를 찾았을 때 부터 앞 노드 값과 차이값을 구해서 min값 유지
*/
class Solution {
    boolean init;
    int min;
    int prev;
    public int getMinimumDifference(TreeNode root) {
        init = false;
        min = Integer.MAX_VALUE;
        inorder(root);
        return min;
    }
    
    public void inorder(TreeNode root) {
        if(root == null) return;
        inorder(root.left);
        // self
        if(!init) {
            init = true;
        } else {
            min = Math.min(min, root.val - prev);
        }
        prev = root.val;
        inorder(root.right);
    }
}