*LeetCode-Closest Binary Search Tree Value

本文探讨了在树形结构中查找与目标值最接近的元素的高效算法,通过迭代和递归两种方法实现了优化过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

啊 最直观的应该是iterative的 每次向下一层 都尝试更新min dist就好 不会因为选择了某一边而错过min dist的!因为假如root 比target大 那root右边那些更大的不可能比root更近!

public class Solution {
    public int closestValue(TreeNode root, double target) {
        int close = root.val;
        while ( root != null ){
            if ( Math.abs ( close - target ) > Math.abs ( root.val - target ) )
                close = root.val;
            root = root.val > target ? root.left : root.right;
        }
        return close;
    }
}

recursive

public class Solution {
    public int closestValue(TreeNode root, double target) {
        int rootval = root.val;
        TreeNode c = rootval > target ? root.left : root.right;
        if ( c == null )
            return rootval;
        int close = closestValue ( c, target );
        return Math.abs ( close - target ) > Math.abs ( rootval - target ) ? rootval : close;
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值