您的位置:首页 > Web前端

leetcode Minimum Absolute Difference in BST 二叉搜索树中的最小差

2017-09-26 22:02 477 查看
Given a binary search tree with non-negative values, find the minimum absolute difference between values of any two nodes.

Note: There are at least two nodes in this BST.

题意:求二叉搜索树中节点值的最小差。

思路:二叉搜索树的左子节点比根节点小,右子节点比根节点大,注意左子节点的右子节点比根节点小,且其与根节点的差值比左子节点和根节点的差值小,右子节点同理。

/**
* 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 {
int min_dif = INT_MAX, val = -1;
public:
int getMinimumDifference(TreeNode* root) {
//先求左子树最小差值
if (root->left != NULL) getMinimumDifference(root->left);
if (val >= 0) min_dif = min(min_dif, root->val - val);
//记录当前根节点值
val = root->val;
if (root->right != NULL) getMinimumDifference(root->right);
return min_dif;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: