530. 二叉搜索树的最小绝对差

一、二叉搜索树性质

二叉搜索树的中序遍历为升序,将树遍历成数组,再对数组进行求差值

二、优化

在遍历的过程中进行计算差值
因为二叉搜索树的中序遍历为升序,所以最小绝对差肯定出现在相邻的两个结点中
用pre记录前一节点,

  1. class Solution {
  2. public:
  3. TreeNode* pre=NULL;
  4. int result = INT_MAX;
  5. void dfs(TreeNode* cur)
  6. {
  7. if(!cur)return;
  8. dfs(cur->left);
  9. if(pre!=NULL)
  10. result = min(result,cur->val-pre->val);
  11. pre = cur;
  12. dfs(cur->right);
  13. }
  14. int getMinimumDifference(TreeNode* root) {
  15. dfs(root);
  16. return result;
  17. }
  18. };