您的位置:首页 > Web前端

[LeetCode] 530. Minimum Absolute Difference in BST

2017-08-05 18:09 330 查看
Given a binary search tree with non-negative values, find the minimum absolute difference between values of any two nodes.

Example:

Input:

1
\
3
/
2

Output:
1

Explanation:
The minimum absolute difference is 1, which is the difference between 2 and 1 (or between 2 and 3).


class Solution {
public:
int getMinimumDifference(TreeNode* root) {
stack<TreeNode *> stk;

int MinAbsDiff = INT_MAX, lastval = -1;
TreeNode *ptn = root;
while (!stk.empty() || ptn) {
if (ptn) {
stk.push(ptn);
ptn = ptn->left;
} else {
ptn = stk.top();
stk.pop();
if (lastval == -1)
lastval = ptn->val;
else {
MinAbsDiff = min(MinAbsDiff, abs(ptn->val - lastval));
lastval = ptn->val;
}
ptn = ptn->right;
}
}

return MinAbsDiff;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: