首页 > 其他 > 详细

二叉树:二叉搜索树节点最小距离

时间:2021-05-05 17:35:40      阅读:16      评论:0      收藏:0      [点我收藏+]

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

给你一个二叉搜索树的根节点 root ,返回树中任意两不同节点值之间的最小差值。

注意:本题与 530 相同
技术分享图片

输入:root = [4,2,6,1,3]
输出:1

思路

二叉搜索树采用中序遍历,其实就是一个有序数组。

在递归遍历的过程中记录前后两个指针,就可以直接计算了。
技术分享图片

代码

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    TreeNode prev= null;
    int ans = Integer.MAX_VALUE;

    public int minDiffInBST(TreeNode root) {
        midOrder(root);
        return ans;
    }
    public void midOrder(TreeNode root){
        if(root == null){
            return;
        }
        midOrder(root.left);
        if(prev != null){
            ans = Math.min(ans,root.val-prev.val);
        }
        prev = root;
        midOrder(root.right);
    }

}

二叉树:二叉搜索树节点最小距离

原文:https://www.cnblogs.com/luedong/p/14652202.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!