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;
        }
    };
    
  • 相关阅读:
    使用jQuery对象
    jQuery插件
    使用jQuery函数
    jQuery的两把利器
    初始jQuery
    BOM——特效
    BOM的介绍
    DOM——节点操作
    miaov- 自动生成正V反V大于号V小于号V楼梯等图案
    H5 -- 本地存储计数器的值 和前端校验用户
  • 原文地址:https://www.cnblogs.com/pk28/p/8486868.html
Copyright © 2011-2022 走看看