题目描述
给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。
差值是一个正数,其数值等于两值之差的绝对值。
解题思路
我们这里采用一个result值作为我们最后的返回值,同时使用pre存储我们的前一个遍历的节点,因为二叉搜索树的最小绝对差值只能是存在与我们两个相邻的节点之间,所以这里我们采用中序遍历的方式,遍历的结果就是有序的
实例代码
class Solution {
private int result=Integer.MAX_VALUE;
TreeNode pre=null;
public int getMinimumDifference(TreeNode root) {
foreach(root);
return result;
}
public void foreach(TreeNode node){
if(node==null){
return;
}
foreach(node.left);
if(pre==null){
pre=node;
}else{
if(Math.abs(node.val-pre.val)<result){
result=Math.abs(node.val-pre.val);
}
pre=node;
}
foreach(node.right);
}
}
来源链接:https://www.cnblogs.com/dfj-blog/p/18578167
© 版权声明
本站所有资源来自于网络,仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您(转载者)自己承担!
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
THE END
暂无评论内容