文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。

案例 1:
输入: 5/ \3   6/ \   \
2   4   7Target = 9
输出: True案例 2:
输入: 5/ \3   6/ \   \
2   4   7Target = 28
输出: False

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum-iv-input-is-a-bst
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 创建二叉搜索树的正向和反向迭代器(中序是排好序的),一个从前面开始,一个从后面开始
  • 双指针逼近给定的数即可

相关参考:LeetCode 173. 二叉搜索树迭代器(中序遍历)

class Solution {TreeNode *begin, *end, *temp;stack<TreeNode*> s1, s2;
public:bool findTarget(TreeNode* root, int k) {if(root == NULL)return false;begin = end = root;TreeNode *i = next(), *j = prev();while(i != j){if(i->val+j->val > k)j = prev();//和大了,j减小else if(i->val+j->val < k)i = next();//和小了,i增大else//if(i->val+j->val == k)return true;}return false;}TreeNode* next()//正向迭代器,从最小的开始{while(begin){s1.push(begin);begin = begin->left;}temp = s1.top();s1.pop();begin = temp->right;return temp;}TreeNode* prev()//反向迭代器,从最大的开始{while(end){s2.push(end);end = end->right;}temp = s2.top();s2.pop();end = temp->left;return temp;}
};

LeetCode 653. 两数之和 IV - 输入 BST(二叉搜索树迭代器双指针)相关推荐

  1. 力扣题目——653. 两数之和 IV - 输入 BST

    注:本文的实现思路主要是基于JS(JavaScript),涉及到的一些函数都是JS中的自带函数 题目描述 给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给 ...

  2. 两数之和 IV - 输入 BST

    两数之和 IV - 输入 BST 题目 两数之和 IV - 输入 BST(力扣:653) 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true. ...

  3. 【每日一算法】两数之和 IV - 输入 BST

    微信改版,加星标不迷路! 每日一算法-两数之和IV-输入BST 作者:阿广 阅读目录 1 题目 2 解析 1 题目 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目 ...

  4. LeetCode(653)——两数之和 IV - 输入 BST(JavaScript)

    给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true. 示例1: 输入: 输出: True 示例2: 输入: 输出: False /*** De ...

  5. LeetCode简单题之两数之和 IV - 输入 BST

    题目 给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true. 示例 1: 输入: root = [5,3,6,2,4,null, ...

  6. [LeetCode]653.两数之和IV-输入BST

    文章目录 题目描述 算法实现 题目描述 难度:简单 算法实现 /*** Definition for a binary tree node.* public class TreeNode {* int ...

  7. C/C++描述 LeetCode 167. 两数之和 II - 输入有序数组

    C/C++描述 LeetCode 167. 两数之和 II - 输入有序数组   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在 ...

  8. leetcode(167)两数之和 II - 输入有序数组

    两数之和 II - 输入有序数组 给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target . 函数应该以长度为 2 的整数数组的形式返回这两 ...

  9. C#LeetCode刷题之#653-两数之和 IV - 输入 BST(Two Sum IV - Input is a BST)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4098 访问. 给定一个二叉搜索树和一个目标结果,如果 BST 中 ...

最新文章

  1. Docker基本使用命令
  2. 结合不同的模型进行集成学习
  3. 区块链BaaS云服务(4)三星 Nexledger
  4. Java 虚拟机诊断利器
  5. clickhouse物化视图优缺点_ClickHouse 适用场景
  6. jQuery如何选择表格每行中的第三列?
  7. html溢出左右滚动,html-选项卡溢出时水平滚动
  8. redis windows安装
  9. 计算机辅助设计与制造专业课程,《计算机辅助设计与制造》课程实验指导书
  10. Packet for query is too large (12164278 > 4194304). You can change this value
  11. 样式处理——去除无用样式
  12. 软件中反跟踪技术和软件调试
  13. 1496.数括号法求广义表深度
  14. 一张图看明白金融数据架构
  15. suitecrm查询功能去掉统配符%
  16. LIS系统和医院HIS系统的对接方案
  17. word在使用Endnote时变得非常卡解决办法
  18. 内盘外盘新手看热闹,老手在内盘外盘看门道
  19. sqlmap安装配置教程
  20. 计算机键盘指示灯不亮也不启动不了机,电脑开机时滴滴响 开不了机,显示器显示无信号,键盘灯不亮...

热门文章

  1. Halcon中OCR的实现及关键函数解析
  2. Android为spinner设置适配器,Android Spinner与适配器模式详解及实例代码
  3. 能设值多个rowkey吗_顶楼送了露台,悄悄搭建阳光房,偏偏我家露台多个帽子,能拆吗?...
  4. java程序源代码如何保存到桌面_如何编写JAVA小白第一个程序
  5. java公钥加密私钥解密过程_GPG加密解密过程
  6. github生成SSH公钥
  7. Delphi XE7的Splash 功能
  8. kafka Failed to send messages after 3 tries 问题解决
  9. BZOJ 1452 [JSOI2009] Count
  10. Silverlight 3.0 Isolated Storage 独立存储空间