783. Minimum Distance Between BST Nodes
/**
* 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:
void dfs(TreeNode* root, int &last_num, int &min_dis) {
if(!root) return ;
dfs(root->left, last_num, min_dis);
if(last_num != INT_MIN) min_dis = min(min_dis, root->val - last_num);
last_num = root->val;
dfs(root->right, last_num, min_dis);
}
int minDiffInBST(TreeNode* root) {
if(!root) return 0;
int last_num = INT_MIN, min_dis = INT_MAX;
dfs(root, last_num, min_dis);
return min_dis;
}
};