783_二叉搜索树节点最小距离

2021/12/20 6:21:34

本文主要是介绍783_二叉搜索树节点最小距离,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

783_二叉搜索树节点最小距离

 

package 二叉树.二叉搜索树;
/**
 * https://leetcode-cn.com/problems/minimum-distance-between-bst-nodes/
 * @author Huangyujun
 *
 */
public class _783_二叉搜索树节点最小距离 {
    //找到二叉树中两个值的差最小(拿到数据~遍历),如何加快拿到“最小的”数据,先将拿到的数据进行排序处理(咱选择升序降序都ok)
    //经过处理(升序)的数据,可以直接两个连续挨着近的数据可能是最小
    //过程的数据要注意一个细节:差,是从拥有了两个数据开始才诞生的,但是遍历一开始才有一个数据,咱需要先记录下来(作为第一个数据,留个下个数据比较操作之类的)
    int ans = 0;
    int pre = 0;
    public int minDiffInBST(TreeNode root) {
        ans = Integer.MAX_VALUE;
        pre = -1;
        inorder(root);
        return ans;
    }
    public void inorder(TreeNode root) {
        if(root == null)    return;
        inorder(root.left);
        //拿到数据,
        if(pre == -1) {
            pre = root.val;
        }else {
            ans = Math.min(ans, root.val - pre);
            pre = root.val;
        }
        inorder(root.right);
    }
}

 



这篇关于783_二叉搜索树节点最小距离的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程