Leetcode/Top Interview 150

[Binary Seach Tree][Easy] 530. Minimum Absolute Difference in BST

자전거통학 2024. 6. 15. 22:33

Q. 주어진 BST 에서 두 노드간 차이의 절대값의 최소값을 찾아라. 

 

Solution. 

 BST 자체가 우선 정렬된 값이라는 것을 생각할 필요가 있다. 

 그렇다면 이 정렬된 값을 어떻게 얻느냐. 

 In Order Traverse를 하면 정렬된 값을 순서대로 얻을 수가 있다. 

 

 코드를 만든다. 

더보기

 

void InOrder(TreeNode* node, vector<int>& vBuff)
{
    if(node == nullptr)
        return;

    InOrder(node->left, vBuff);
    vBuff.push_back(node->val);
    InOrder(node->right, vBuff);
}

int getMinimumDifference(TreeNode* root) {

    vector<int> vBuff;
    InOrder(root, vBuff);

    int minRet = INT_MAX;
    for(int k = 1; k < vBuff.size(); ++k)
    {
        int diff = vBuff[k] - vBuff[k-1];
        minRet = min(minRet, diff);
    }
    return minRet;
}

 

 

결과.