
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;
}
결과.

'Leetcode > Top Interview 150' 카테고리의 다른 글
| [Graph General][Medium] 133. Clone Graph (0) | 2024.06.18 |
|---|---|
| [Graph General][Medium] 130. Surrounded Regions (1) | 2024.06.16 |
| [Binary Tree BFS][Medium] 103. Binary Tree Zigzag Level Order Traversal (0) | 2024.06.14 |
| [Binary Tree BFS][Easy] 637. Average of Levels in Binary Tree (0) | 2024.06.14 |
| [Binary Tree General][Medium] 173. Binary Search Tree Iterator (1) | 2024.06.13 |