zoukankan      html  css  js  c++  java
  • [LeetCode] 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).

    Note: There are at least two nodes in this BST.

    找出一个二叉树中任意两个节点的最小绝对值。利用二叉树中序遍历的性质,将二叉树按从小到大的顺序存储在一个数组中,然后遍历数组找出最小的绝对值。

    class Solution {
    public:
        vector<int> res;
        int getMinimumDifference(TreeNode* root) {
            inOrder(root);
            int minDiff = INT_MAX;
            for (int i = 1; i != res.size(); i++) {
                int tmp = res[i] - res[i - 1];
                minDiff = min(minDiff, tmp);
            }
            return minDiff;
        }
        void inOrder(TreeNode* root) {
            if (root == nullptr)
                return;
            inOrder(root->left);
            res.push_back(root->val);
            inOrder(root->right);
        }
    };
    // 19 ms
  • 相关阅读:
    202103226-1 编程作业
    阅读任务
    1 20210309-1 准备工作
    20210405-1 案例分析作业
    第一周作业
    20210309-2 阅读任务
    20210309-1 准备工作
    编程作业
    阅读任务
    准备工作
  • 原文地址:https://www.cnblogs.com/immjc/p/7183337.html
Copyright © 2011-2022 走看看