给你一个二叉搜索树的根节点 root
,返回 树中任意两不同节点值之间的最小差值 。
差值是一个正数,其数值等于两值之差的绝对值。
双指针省空间
/**
* 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 minValue = Integer.MAX_VALUE;
TreeNode pre = null;
void travel(TreeNode root){
if(root==null) return;
travel(root.left);
if(pre!=null){
int temp = Math.abs(root.val-pre.val);
minValue = minValue<temp?minValue:temp;
}
pre = root;//双指针
travel(root.right);
}
public int getMinimumDifference(TreeNode root) {
travel(root);
return minValue;
}
}