当前位置: 首页 > news >正文

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,我懒得用

http://www.jsqmd.com/news/318283/

相关文章:

  • 大数据深度学习|计算机毕设项目|计算机毕设答辩|静脉输液液位检测系统
  • 告别题海战术:主管技师备考的数字化备考方案
  • 剪辑IP口播完整版本
  • 编程作为IT行业中不可或缺的职位
  • 研读主管技师备考攻略:高效掌握考试难点
  • 食品异物检测技术:X光机如何守护食品安全
  • Ollama 远程访问完整实战:One-API + 内网穿透 + Cloudflare Tunnel 全方案解析
  • 实用指南:Rust 动态分发(dyn Trait)详解
  • 生产计划和排产计划一混,ERP再怎么用管理也乱!
  • 2026年女性/ 植发际线 / 美学 / 高颅顶 /鬓角 植发 技术好的植发机构推荐排行榜 美学设计/自然原生感/无尴尬期/全生命周期管理
  • GEO优化:提升本地搜索可见度的关键技术解析
  • 蒙特卡洛模拟电动汽车的有序充放电策略及其在优化调度、微电网与综合能源、储能、新能源方向的基础入...
  • 供应链商城系统推荐|千匠网络表现突出,成传统产业首选服务商
  • 2026年女性植发/发际线植发/头顶稀疏/不剃发植发/恢复效果成功案例丰富多样的植发机构推荐榜 美学定制/无尴尬期/全周期养固
  • 2026年女性植发/发际线植发/头顶稀疏/不剃发植发/恢复效果成功案例丰富多样的植发机构推荐榜 美学定制/无尴尬期
  • 突破 select 的 1024 文件描述符限制?真相与实践
  • 完整教程:【Linux】理解其中的权限
  • 2026年女性植发/发际线植发/头顶稀疏/不剃发植发/恢复效果成功案例丰富多样的植发机构推荐榜 美学设计/不剃发植发/养固体系
  • 解码罗克韦尔Modbus-RTU通讯程序:实现高效工业控制
  • 广州靠谱律师事务所怎么选?2026年专业解析与适配建议
  • 决策树算法在疾病诊断中的应用
  • Quora多账号内容营销:如何避免被判定为“操纵舆论”?
  • 大数据深度学习|计算机毕设项目|计算机毕设答辩|基于图像识别的液化气排气隐患识别
  • GEO 优化实战:如何让你的内容被 AI 引用,以及基于代理的 GEO 验证方法
  • 大数据深度学习|计算机毕设项目|计算机毕设答辩|基于文字识别的文件数字化处理系统的设计与实现
  • 大数据深度学习|计算机毕设项目|计算机毕设答辩| Pyqt京剧脸谱识别系统
  • 图像基础概念
  • 食品拼多多代运营公司排名榜单(2026年参考)
  • Springboot项目
  • 2026西安中高考全日制补习机构推荐榜