본문 바로가기
Coding Test/LeetCode

[LeetCode] 530. Minimum Absolute Difference in BST [JAVA(자바)]

문제 👉 <Minimum Absolute Difference in BST - LeetCode>

1. 문제 (BST의 최소 절대 차이)

이진 검색 트리 (BST)의 루트가 주어지면 트리에 있는 두 개의 서로 다른 노드 값 간의 최소 절대 차이를 반환합니다.


Input: root = [4,2,6,1,3]
Output: 1


Input: root = [1,0,48,null,null,12,49]
Output: 1

2. 풀이

  • 이진검색트리 - inorder 를 이용한 풀이
    • 이진 검색 트리의 inorder -> 오름차순 정렬이 됨!
  • 트리 순회
    • preorder : self -> left -> right
    • inorder : left -> self -> right
    • postorder : left -> right -> self

3. 코드

class Solution {
    int minValue, preValue;
    boolean init;

    void inorder(TreeNode root) {
        if (root == null) return;

        // left
        inorder(root.left);     

        // self
        if (!init) {
            init = true;
        } else {
            minValue = Math.min(minValue, root.val - preValue);
        }
        preValue = root.val;

        // right
        inorder(root.right);        
    }

    public int getMinimumDifference(TreeNode root) {
        init = false;
        minValue = Integer.MAX_VALUE;
        inorder(root);
        return minValue;
    }   
}
  • 결과 :
Time Submitted Status Runtime Memory Language
05/03/2021 Accepted 0 ms 39.1 MB java


References


🏋🏻 개인적으로 공부한 내용을 기록하고 있습니다.
잘못된 부분이 있다면 과감하게 지적해주세요!! 🏋

댓글