题目链接:530. 二叉搜索树的最小绝对差
本题与 783 783. 二叉搜索树节点最小距离 相同
2020.10.12第一次解答:
解题思路
中序遍历将所有结点的值的绝对值存入容器。对容器排序,遍历容器获取最小差值
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
int getMinimumDifference(TreeNode* root) {
int min = INT_MAX;
vector<int> v;
TreeNode* cur;
queue<TreeNode*> q;
q.push(root);
while (!q.empty()) {
cur = q.front();
q.pop();
v.emplace_back(abs(cur->val));
if (cur->left) q.push(cur->left);
if (cur->right) q.push(cur->right);
}
sort(begin(v), end(v));
for (int i = 0; i < v.size() - 1; i++) {
if (v[i + 1] - v[i] < min) {
min = v[i + 1] - v[i];
}
}
return min;
}
};