530_二叉搜索树的最小绝对差
package 二叉树.二叉搜索树; import java.util.ArrayList; import java.util.List; /** * https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst/ * * @author Huangyujun *树中至少有 2 个节点 */ public class _530_二叉搜索树的最小绝对差 { //中序遍历 (二叉搜索树的中序遍历是递增的,最小绝对值,只需要用前一个值-后二个值得出) //从第二个结点开始,每次进入一个新的结点,都要不断的更新最小距离 int prev; int ans; public int getMinimumDifference(TreeNode root) { prev = -1; ans = Integer.MAX_VALUE; inorder(root); return ans; } //通过拿到前一个的val ,第二个val 减掉即可得知最小的 public void inorder(TreeNode node) { if(node == null) return; inorder(node.left); //拿到当前结点,需要判断一下是否遍历到第二个结点了 if(prev == - 1) { //才遍历到当前第一个结点 prev = node.val; }else { ans = Math.min(ans, node.val - prev); prev = node.val; } inorder(node.right); } }