zoukankan      html  css  js  c++  java
  • leetcode 530. Minimum Absolute Difference in BST

    Given a binary search tree with non-negative values, find the minimum absolute difference between values of any two nodes.

    Example:
    
    Input:
    
       1
        
         3
        /
       2
    
    Output:
    1
    
    Explanation:
    The minimum absolute difference is 1, which is the difference between 2 and 1 (or between 2 and 3).
    

    题目大意,求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 {
    public:
        int ans = 1000000;
        void dfs(TreeNode* root, int& pre) {
            if (root == nullptr) return ;
            dfs(root->left, pre);
            if (pre != -1) ans = min(root->val-pre, ans);
            //cout << "pre " << pre << "    " << root->val << endl;
            pre = root->val;
            dfs(root->right, pre);
        }
        int getMinimumDifference(TreeNode* root) {
            int pre = -1;
            dfs(root, pre);
            return ans;
        }
    };
    
  • 相关阅读:
    表单序列化
    创建.ignore文件
    头条数学救火队长马丁的一道中山大学研究生入学考试数学分析题
    实数理论
    方法
    目标
    闭区间有限覆盖定理
    零值定理的确界原理证明方法,来自百度
    各种范例
    零值定理
  • 原文地址:https://www.cnblogs.com/pk28/p/8486868.html
Copyright © 2011-2022 走看看