news 2026/7/1 16:24:01

Leetcode会员尊享100题:270.最接近的二叉树值

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Leetcode会员尊享100题:270.最接近的二叉树值

给你二叉搜索树的根节点root和一个目标值target,请在该二叉搜索树中找到最接近目标值target的数值。如果有多个答案,返回最小的那个。

示例 1:

输入:root = [4,2,5,1,3], target = 3.714286输出:4

示例 2:

输入:root = [1], target = 4.428571输出:1

提示:

  • 树中节点的数目在范围[1, 104]
  • 0 <= Node.val <= 109
  • -109 <= 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,我懒得用

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 5:46:55

图像基础概念

图像基础概念RAW、Mono和BayerRAW&#xff08;原始数据&#xff09;Bayer&#xff08;拜耳阵列&#xff09;Mono&#xff08;黑白&#xff09;RAW和Bayer的关系&#xff08;包含关系&#xff09;RAW&#xff08;Bayer&#xff09;和Mono的关系&#xff08;并列关系&#xff09;…

作者头像 李华
网站建设 2026/6/25 8:21:12

大数据深度学习|计算机毕设项目|计算机毕设答辩|基于文字识别的文件数字化处理系统的设计与实现

一、项目介绍 在信息化时代&#xff0c;纸质文件向数字化转换的需求日益增长&#xff0c;基于文字识别的文件数字化处理系统应运而生。本文的主要内容包括&#xff1a;利用PyQt设计用户界面&#xff0c;结合OpenCV图像处理技术&#xff0c;实现纸质文件的扫描、图像预处理、文字…

作者头像 李华
网站建设 2026/6/30 23:42:18

机器人租售动作齐?专人控全场

在商用机器人服务现场&#xff0c;任务的呈现始终源于事前约定与人力执行的结合。无论是节日庆典中的多轮登场&#xff0c;还是教育场馆内的一次性演示&#xff0c;机器人的每一次启动、每一段动作&#xff0c;均由服务商人员按计划触发&#xff0c;其行为边界严格限定于客户活…

作者头像 李华
网站建设 2026/6/28 20:35:53

HUAWEI AGC平台,使能HarmonyOS应用开发提质增效

HUAWEI AppGallery Connect &#xff08;简称AGC&#xff09;平台&#xff0c;可为HarmonyOS应用开发者提供开发、测试、运营、分析全链路服务&#xff0c;使能开发者高效开发&#xff0c;为应用质量护航并推动运营增长&#xff0c;实现商业成功。 围绕开发者在应用开发各阶段…

作者头像 李华
网站建设 2026/6/29 20:21:45

低值易耗品管理信息系统的设计与实现(11835)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告&#xff09;远程调试控屏包运行 三、技术介绍 Java…

作者头像 李华