给你一个二叉搜索树的根节点 root
,返回 树中任意两不同节点值之间的最小差值 。
差值是一个正数,其数值等于两值之差的绝对值。
示例 1:
输入:root = [4,2,6,1,3] 输出:1
示例 2:
输入:root = [1,0,48,null,null,12,49] 输出:1
提示:
- 树中节点的数目范围是
[2, 104]
0 <= Node.val <= 105
总结
遇到在二叉搜索树上求什么最值,求差值之类的,都要思考一下二叉搜索树可是有序的,要利用好这一特点。
同时要学会在递归遍历的过程中如何记录前后两个指针,这也是一个小技巧,学会了还是很受用的。
后面我将继续介绍一系列利用二叉搜索树特性的题目。文章来源:https://www.toymoban.com/news/detail-728160.html
class Solution {
public:
int minval = INT32_MAX;
TreeNode* pre = nullptr;
void dfs(TreeNode* root){
if(!root) return;
dfs(root->left);
if(pre && root->val - pre->val < minval) minval = root->val - pre->val;
pre = root;
dfs(root->right);
}
int getMinimumDifference(TreeNode* root) {
dfs(root);
return minval;
}
};
文章来源地址https://www.toymoban.com/news/detail-728160.html
到了这里,关于530. 二叉搜索树的最小绝对差的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!