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

来源:互联网 发布:c语言while是什么意思 编辑:程序博客网 时间:2024/06/16 03:56

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;    }};
阅读全文
0 0
原创粉丝点击