Skip to content

Latest commit

 

History

History

0783.Minimum-Distance-Between-BST-Nodes

题目

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:

https://assets.leetcode.com/uploads/2021/02/05/bst1.jpg

Input: root = [4,2,6,1,3] Output: 1 

Example 2:

https://assets.leetcode.com/uploads/2021/02/05/bst2.jpg

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 }
close