zoukankan      html  css  js  c++  java
  • 2021.2.19 刷题(搜索树的最小绝对差)

    题目链接:https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst/
    题目描述:

    方法一:
    1.中序遍历二叉树,得到一个有序数组
    2.遍历数组,比较两个相邻元素的差值,返回最小值

    /**
     * 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:
        vector<int> vec;
        void travle(TreeNode *root)
        {
            if(root == NULL) return;
            getMinimumDifference(root->left);
            vec.push_back(root->val);
            getMinimumDifference(root->right);
        }
        int getMinimumDifference(TreeNode* root) {
            travle(root);
            int result = INT_MAX;
            for(int i = 1; i < vec.size(); i++)
            {
                result = min(result, vec[i] - vec[i - 1]);
            }
            return result;
        }
    };
    

    方法二:在递归过程中记录前一个节点,不需要再增加额外的空间

    /**
     * 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 result = INT_MAX; 
        TreeNode *pre;   //记录cur前一个节点
        void travle(TreeNode *cur)
        {
            if(cur == NULL) return;
            getMinimumDifference(cur->left);
            if(pre != NULL)
                result = min(result, cur->val - pre->val); //记录最小绝对差
            pre = cur; //更新节点
            getMinimumDifference(cur->right);
        }
        int getMinimumDifference(TreeNode* root) {
            travle(root);
            return result;
        }
    };
    
  • 相关阅读:
    border-color
    animation
    servlet injection analysis
    事务隔离级别
    write RE validation
    Filter
    Annotation
    Injector
    gradle的安装
    Build tool
  • 原文地址:https://www.cnblogs.com/ZigHello/p/14417992.html
Copyright © 2011-2022 走看看