zoukankan      html  css  js  c++  java
  • leetcode leetcode 783. Minimum Distance Between BST Nodes

    Given a Binary Search Tree (BST) with the root node root, return the minimum difference between the values of any two different nodes in the tree.

    Example :
    
    Input: root = [4,2,6,1,3,null,null]
    Output: 1
    Explanation:
    Note that root is a TreeNode object, not an array.
    
    The given tree [4,2,6,1,3,null,null] is represented by the following diagram:
    
              4
            /   
          2      6
         /     
        1   3  
    
    while the minimum difference in this tree is 1, it occurs between node 1 and node 2, also between node 3 and node 2.
    

    Note:

    The size of the BST will be between 2 and 100.
    The BST is always valid, each node's value is an integer, and each node's value is different.

    思路:bst树的中序遍历是一个升序的数组,那么中序遍历一遍,放到vector中,相邻的做差比较就好了。

    /**
     * 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:
        priority_queue<int> q;
        void dfs(TreeNode* root) {
            if (root == nullptr) return;
            q.push(root->val);
            dfs(root->left);
            dfs(root->right);
        }
        int minDiffInBST(TreeNode* root) {
            dfs(root);
            int x = q.top();q.pop();
            int ans = 10000000;
            while(!q.empty()) {
                int y = q.top();q.pop();
                ans = min (x-y, ans);
                x = y;
            }
            return ans;
        }
    };
    
  • 相关阅读:
    2019nc#7
    ABC133F
    2019DX#6
    2019DX#5
    2019dx#4
    解决一般图最大匹配——带花树算法
    2019nc#4
    B-generator 1_2019牛客暑期多校训练营(第五场)
    hdu-6638 Snowy Smile
    hdu-6621 K-th Closest Distance
  • 原文地址:https://www.cnblogs.com/pk28/p/8483726.html
Copyright © 2011-2022 走看看