問題
例子
思路
-
方法1
二叉搜索樹,考慮類似二分,減少操作
-
方法2
代碼
//方法1
class Solution {
private double dist=Double.MAX_VALUE;
private int res=0;
public int closestValue(TreeNode root, double target) {
preOrder(root,target);
return res;
}
public void preOrder(TreeNode root, double target) {
if(root==null) return;
if(Math.abs(root.val-target)<dist) {
dist= Math.abs(root.val-target);
res=root.val;
}
//加一個判斷,減少操作
if(root.val>target)
if(root.left!=null) preOrder(root.left,target);
if(root.val<target)
if(root.right!=null) preOrder(root.right,target);
}
}
//方法2