剑指Offer || 056.两数之和 IV - 输入二叉搜索树

题目

给定一个二叉搜索树的 根节点 root 和一个整数 k , 请判断该二叉搜索树中是否存在两个节点它们的值之和等于 k 。假设二叉搜索树中节点的值均唯一。

示例 1:

复制代码
输入: root = [8,6,10,5,7,9,11], k = 12
输出: true
解释: 节点 5 和节点 7 之和等于 12

示例 2:

复制代码
输入: root = [8,6,10,5,7,9,11], k = 22
输出: false
解释: 不存在两个节点值之和为 22 的节点

提示:

  • 二叉树的节点个数的范围是 [1, 104].
  • -104 <= Node.val <= 104
  • root 为二叉搜索树
  • -105 <= k <= 105

注意:本题与主站 653 题相同: 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

LCR 056. 两数之和 IV - 输入二叉搜索树 - 力扣(LeetCode)

题解

思路:广搜+使用set来记录是否存在k-node.val

代码:

java 复制代码
class Solution {
    public boolean findTarget(TreeNode root, int k) {
    	if(root==null) return false;
    	Set<Integer> set=new HashSet<>();
    	Queue<TreeNode> queue=new ArrayDeque<>();
    	queue.offer(root);
    	while(!queue.isEmpty()) {
    		TreeNode node=queue.poll();
    		if(set.contains(k-node.val)) return true;
    		set.add(node.val);
    		if(node.left!=null) queue.offer(node.left);
    		if(node.right!=null) queue.offer(node.right);
    	}
    	return false;
    }
}
相关推荐
nlpming9 小时前
OpenCode Skills 文档
算法
无限进步_10 小时前
二叉搜索树完全解析:从概念到实现与应用场景
c语言·开发语言·数据结构·c++·算法·github·visual studio
05候补工程师10 小时前
深度解构 ROS 2:如何手动调通 Nav2 A* 路径规划引擎
linux·人工智能·经验分享·算法·机器人
上弦月-编程10 小时前
【C语言逻辑题】谋杀案凶手是谁?——经典矛盾推理题详解
算法
天若有情67310 小时前
逆向玩家狂喜!用C++野生写法一键破解线性加密(不规范但巨好用)
开发语言·c++·算法
风筝在晴天搁浅11 小时前
剑指Offer 60.n个骰子的点数
算法
ProgramHelpOa11 小时前
Optiver 2026 OA 全面复盘|26NG / Intern 最新高频题型整理
人工智能·算法·机器学习
feifeigo12311 小时前
基于无迹变换的电网概率潮流分析 MATLAB 实现
开发语言·算法·matlab
Java成神之路-11 小时前
【算法刷题笔记】全题型导航目录
笔记·算法
爱写代码的倒霉蛋11 小时前
2022年天梯赛L1-8真题解析(哈希+排序)
数据结构·算法