https://leetcode.com/problems/minimum-absolute-difference-in-bst/
- This question prefer inorder traverse for to compare neighbors and non-neignbors but close branches.
1. Use inorder traverse:
```go //28 ms 25.2 MB
/**
- Definition for a binary tree node.
- struct TreeNode {
- int val;
- TreeNode *left;
- TreeNode *right;
- TreeNode() : val(0), left(nullptr), right(nullptr) {}
- TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
- TreeNode(int x, TreeNode left, TreeNode right) : val(x), left(left), right(right) {}
}; / class Solution { public: int getMinimumDifference(TreeNode root) {
int min_diff = INT_MAX;int prev = -1;inorder(root, min_diff, prev);return min_diff;
}
private: void inorder(TreeNode* root, int& min_diff, int& prev) {
if(root->left)
inorder(root->left, min_diff, prev);
//cout << root->val << " " << prev << endl;
if(prev >= 0) min_diff = min(min_diff, root->val - prev);
prev = root->val;
if(root->right)
inorder(root->right, min_diff, prev);
}
}; ```
