530. 二叉搜索树的最小绝对差
原题
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/
class Solution {//结果int ans = Integer.MAX_VALUE;//前一个节点值int pre = -1;public int getMinimumDifference(TreeNode root) {dfs(root);return ans;}//中序遍历,可以使二叉搜索树有序排列public void dfs(TreeNode node){if(node==null){return ;}dfs(node.left);//更新pre==-1表示前一个节点没有被遍历,则将前一个节点更新为当前结点值if(pre==-1){pre=node.val;}else {//将遍历到的前一个节点和当前结点求差,获取最小差值ans = Math.min(ans,Math.abs(pre-node.val));//将前一个节点值更新为当前节点值pre = node.val;}dfs(node.right);}}