=============================================================
Description:
Given the root of a Binary Search Tree (BST), return the minimum difference between the values of any two different nodes in the tree.
Example 1
Input: root = [4,2,6,1,3]
Output: 1
Example 2:
Input: root = [1,0,48,null,null,12,49]
Output: 1
Constraints:
The number of nodes in the tree is in the range [2, 100].
0 <= Node.val <= 105
=============================================================
solution:
/** * 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 minDiffInBST(TreeNode* root) { int ans = INT_MAX; inorder(root, ans); return ans; } private: int pred = -1; void inorder(TreeNode* root, int& ans) { if (!root) return; inorder(root->left, ans); if (pred >= 0) ans = min(ans, root->val - pred); pred = root->val; inorder(root->right, ans); } };
leetcode
challenge
Here is the link for the problem:
https://leetcode.com/problems/minimum-distance-between-bst-nodes/
Top comments (0)