Given the root
of a Binary Search Tree (BST), return the minimum difference between the values of any two different nodes in the tree.
Note: This question is the same as 530: https://leetcode.com/problems/minimum-absolute-difference-in-bst/
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 <= 10^5
给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。
- 本题和第 530 题完全相同。解题思路见第 530 题。
package leetcode import ( "math""github.com/halfrost/LeetCode-Go/structures" ) // TreeNode definetypeTreeNode= structures.TreeNode/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */funcminDiffInBST(root*TreeNode) int { res, nodes:=math.MaxInt16, -1dfsBST(root, &res, &nodes) returnres } funcdfsBST(root*TreeNode, res, pre*int) { ifroot==nil { return } dfsBST(root.Left, res, pre) if*pre!=-1 { *res=min(*res, abs(root.Val-*pre)) } *pre=root.ValdfsBST(root.Right, res, pre) } funcmin(a, bint) int { ifa>b { returnb } returna } funcabs(aint) int { ifa>0 { returna } return-a }