news 2026/9/3 5:10:06

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/9/2 10:25:45

Quora多账号内容营销:如何避免被判定为“操纵舆论”?

Quora 一直是海外内容营销的重要阵地&#xff1a;高权重、搜索可见、用户愿意看长回答。但很多团队在尝试用多个账号做内容矩阵时&#xff0c;会遇到同一个问题&#xff1a; 回答被折叠、曝光突然下降&#xff0c;甚至账号被限制&#xff0c;提示涉及 coordinated behavior 或 …

作者头像 李华
网站建设 2026/9/3 4:30:48

设计模式学习(26) 总结(杂想)

截止今天&#xff0c;我的《设计模式》学习之路正式完结了&#xff0c;暂时告一段落&#xff0c;也算是完成了自己的一个心愿。很多感慨和杂想&#xff0c;没有逻辑&#xff0c;写到哪里是哪里。没啥干货知识&#xff0c;不喜跳过。 首先是感谢 距离提笔(2025.12.12)已过去快两…

作者头像 李华
网站建设 2026/9/2 1:46:29

技术深度解析:主流无人机倾斜摄影三维建模服务商盘点

随着实景三维中国建设的全面推进&#xff0c;无人机倾斜摄影技术已成为获取大范围三维空间数据的关键手段。其最终价值的体现&#xff0c;高度依赖于后端三维建模软件的能力。本文将深入剖析国内几家在技术路径与产品生态上具有代表性的无人机倾斜摄影三维建模服务商&#xff0…

作者头像 李华
网站建设 2026/8/28 22:18:57

CVE-2025-61882 漏洞复现(失败版)

CVE-2025-61882 漏洞复现&#xff08;已失败&#xff09; 漏洞描述 该漏洞源于Oracle E-Business Suite在处理用户请求时&#xff0c;多个组件存在安全缺陷&#xff1a;UiServlet未对用户提供的XML参数进行充分验证&#xff0c;导致SSRF漏洞&#xff1b;后续处理过程中缺乏对…

作者头像 李华
网站建设 2026/9/2 22:04:05

基于DDD开发的KYC用户实名认证

❯ 使用ddd进行开发&#xff0c;为什么能简化代码 ⏺ 很好的问题&#xff01;让我用你的 KYC 项目实际改造的例子来说明 DDD 为什么能简化代码。 &#x1f3af; 核心原因&#xff1a;消除重复 职责集中 1. 业务规则封装&#xff0c;避免到处重复验证 改造前&#xff08;贫血…

作者头像 李华
网站建设 2026/9/3 3:09:34

腾讯轻量云服务器的优点

腾讯轻量云服务器&#xff08;Lighthouse&#xff09;的核心优点在于性价比高、开箱即用、管理便捷&#xff0c;特别适合个人开发者、中小企业、初创团队等轻量级应用场景。以下是其核心优势的详细说明&#xff1a;一、核心优势对比表优势维度具体表现适用场景成本优势​价格比…

作者头像 李华