当前位置:网站首页>【LeetCode】653. 两数之和 IV - 输入 BST
【LeetCode】653. 两数之和 IV - 输入 BST
2022-08-04 10:50:00 【酥酥~】
题目
给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。
示例 1:

输入: root = [5,3,6,2,4,null,7], k = 9
输出: true
示例 2:
输入: root = [5,3,6,2,4,null,7], k = 28
输出: false
提示:
二叉树的节点个数的范围是 [1, 104].
-104 <= Node.val <= 104
root 为二叉搜索树
-105 <= k <= 105
题解
广度优先遍历+二叉搜索树
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */
class Solution {
public:
bool searchBST(TreeNode* root,int val,TreeNode* same)
{
if(root == nullptr)
return false;
if(root->val == val && root!=same)
return true;
return searchBST(val < root->val ? root->left : root->right,val,same);
}
bool findTarget(TreeNode* root, int k) {
queue<TreeNode*> myqueue;
myqueue.emplace(root);
while(!myqueue.empty())
{
TreeNode* node;
node = myqueue.front();
myqueue.pop();
if(searchBST(root,k - node->val,node))
return true;
if(node->left)
myqueue.emplace(node->left);
if(node->right)
myqueue.emplace(node->right);
}
return false;
}
};
广度优先遍历+哈希表
class Solution {
public:
bool findTarget(TreeNode* root, int k) {
queue<TreeNode*> myqueue;
myqueue.emplace(root);
TreeNode* node;
unordered_set<int> myset;
while(!myqueue.empty())
{
node = myqueue.front();
myqueue.pop();
if(myset.count(k - node->val))
return true;
myset.emplace(node->val);
if(node->left)
myqueue.emplace(node->left);
if(node->right)
myqueue.emplace(node->right);
}
return false;
}
};
边栏推荐
- [easyUI]修改datagrid表格中的值
- WPF 截图控件之画笔(八)「仿微信」
- 高级转录组分析和R数据可视化火热报名中(2022.10)
- Win11 file types, how to change?Win11 modify the file suffix
- [论文翻译] Unpaired Image-to-Image Translation using Adversarial Consistency Loss
- 二叉树的基础练习
- Mysql高级篇学习总结13:多表连接查询语句优化方法(带join语句)
- 开源一夏|ArkUI如何自定义弹窗(eTS)
- MySQL:完整性约束和 表的设计原则
- 【虹科案例】基于3D相机组装家具
猜你喜欢
随机推荐
图文手把手教程--ESP32 MQTT对接EMQX本地服务器(VSCODE+ESP-IDF)
Google Earth Engine APP ——制作上传GIF动图并添加全球矢量位置
MATLAB程序设计与应用 3.1 特殊矩阵
audio_policy_configuration.xml配置文件详解
栈与队列的实现
Camunda overall architecture and related concepts
WPF 截图控件之画笔(八)「仿微信」
ArrayList和LinkedList的区别
datax oracle to oracle incremental synchronization
iMeta | 德国国家肿瘤中心顾祖光发表复杂热图(ComplexHeatmap)可视化方法
粤黔协作,山海同心!578种贵州特色农产品走进粤港澳大湾区
helm安装
3-5年以上的功能测试如何进阶自动化?
LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之三
Maple 2022软件安装包下载及安装教程
低代码是开发的未来吗?浅谈低代码开发平台的发展现状及未来趋势
ROI LTV CPA ECPM体系讲解
【Inspirational】The importance of review
ORB-SLAM3中的优化
无代码平台多行文字入门教程









