SSM行李寄存系统o5853--(程序+源码+数据库+调试部署+开发环境)

核心内容摘要

深度解析双大马士革工艺:芯片互连的核心基石
实时美颜滤镜卡顿怎么办?美颜sdk滤镜特效开发优化方案

鸿蒙APP开发经验分享:HarmonyOS Location Kit 端侧与云侧双方案落地指南

给你二叉搜索树的根节点root和一个目标值target请在该二叉搜索树中找到最接近目标值target的数值。

如果有多个答案返回最小的那个。

示例 1输入root [4,2,5,1,3], target

714286输出4示例 2输入root [1], target

428571输出1提示树中节点的数目在范围[1, 104]内0 Node.val

target 109直接上代码/** * 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 { public int closestValue(TreeNode root, double target) { Info info getInfo(root, target); return info.value; } public Info getInfo(TreeNode root, double target) { if(root null) { return new Info(Integer.MAX_VALUE, Integer.MAX_VALUE); } if(root.left null root.right null) { return new Info(root.val, Math.abs(root.val - target)); } /**拿到左右子树的信息 */ Info leftInfo getInfo(root.left, target); Info rightInfo getInfo(root.right, target); /**当前的最小差是左右树的最小差以及跟节点和target的差的最小值 */ double distance Math.min(Math.abs(root.val - target), Math.min(leftInfo.distance, rightInfo.distance)); int value distance leftInfo.distance? leftInfo.value : distance rightInfo.distance? rightInfo.value : root.val; /**有可能有重复的值需要判断取最小那个 */ if(distance leftInfo.distance) { value Math.min(value, leftInfo.value); } if(distance rightInfo.distance) { value Math.min(value, rightInfo.value); } if(distance Math.abs(root.val - target)) { value Math.min(value, root.val); } /**返回当前树的信息 */ return new Info(value, distance); } } class Info { int value; double distance; public Info(int value, double distance) { this.value value; this.distance distance; } }看不懂的请私信或者留言二叉树的所有问题我倾向于使用二叉树的递归套路这个题其实可以用DFS我懒得用

甜心logo在线观看免费高清完整版-甜心logo在线观看免费高清完整版应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123