文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给出两棵二叉搜索树,请你从两棵树中各找出一个节点,使得这两个节点的值之和等于目标值 Target。

如果可以找到返回 True,否则返回 False。

示例 1:
输入:root1 = [2,1,4], root2 = [1,0,3], target = 5
输出:true
解释:2 加 3 和为 5 。示例 2:
输入:root1 = [0,-10,10], root2 = [5,1,7,0,2], target = 18
输出:false提示:
每棵树上最多有 5000 个节点。
-10^9 <= target, node.val <= 10^9

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

2. 解题

  • 写一个二叉搜索树的迭代器,一个升序,一个降序
  • 双指针一个指向最小的,一个指向最大的,根据情况决定,哪个往下挪
class bst_iter
{stack<TreeNode*> s;TreeNode* cur;int v;bool postorder;
public:bst_iter(TreeNode* root, bool postorder = false){cur = root;this->postorder = postorder;//降序}int next(){if(!postorder && (cur || !s.empty())){while(cur){s.push(cur);cur = cur->left;}v = s.top()->val;cur = s.top()->right;s.pop();return v;}else if(postorder && (cur || !s.empty())){while(cur){s.push(cur);cur = cur->right;//降序先遍历右边}v = s.top()->val;cur = s.top()->left;s.pop();return v;}return INT_MAX;}
};
class Solution {public:bool twoSumBSTs(TreeNode* root1, TreeNode* root2, int target) {bst_iter bstit1(root1);//ascendingbst_iter bstit2(root2,true);//descendingint v1 = bstit1.next(), v2 = bstit2.next();while(v1 != INT_MAX && v2 != INT_MAX){if(v1+v2 < target)v1 = bstit1.next();else if(v1+v2 > target)v2 = bstit2.next();elsereturn true;}return false;}
};

48 ms 28.7 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 1214. 查找两棵二叉搜索树之和(二叉树迭代器+双指针)相关推荐

  1. LeetCode 1305. 两棵二叉搜索树中的所有元素(二叉树迭代器)

    1. 题目 给你 root1 和 root2 这两棵二叉搜索树. 请你返回一个列表,其中包含 两棵树 中的所有整数并按 升序 排序.. 提示: 每棵树最多有 5000 个节点. 每个节点的值在 [-1 ...

  2. 两棵二叉搜索树中的所有元素(2022-5-1)每日一练

    1305. 两棵二叉搜索树中的所有元素(2022-5-1) 给你 root1 和 root2 这两棵二叉搜索树.请你返回一个列表,其中包含 两棵树 中的所有整数并按 升序 排序.. 示例请移步官网查看 ...

  3. pta 是否完全二叉搜索树_二叉树:构造一棵搜索树

    给「代码随想录」一个星标吧! ❝ 构造二叉搜索树,一不小心就平衡了 ❞ 108.将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指 ...

  4. 7-4 是否同一棵二叉搜索树 (25 分)

    是否同一棵二叉搜索树 1.题目描述: 给定一个插入序列就可以唯一确定一棵二叉搜索树.然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到.例如分别按照序列{2, 1, 3}和{2, 3, 1}插入 ...

  5. 5-4 是否同一棵二叉搜索树 (25分)

    https://pta.patest.cn/pta/test/15/exam/4/question/712 这道题考察二叉搜索树的实现,并且还需要一定的逻辑与算法,所以题目还是挺好的. 5-4 是否同 ...

  6. 04-树4 是否同一棵二叉搜索树 (25 分)

    给定一个插入序列就可以唯一确定一棵二叉搜索树.然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到.例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果 ...

  7. 是否同一棵二叉搜索树

    给定一个插入序列就可以唯一确定一棵二叉搜索树.然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到.例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果 ...

  8. 7-1 是否同一棵二叉搜索树 (30分)

    给定一个插入序列就可以唯一确定一棵二叉搜索树.然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到.例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果 ...

  9. 基础数据结构——是否同一棵二叉搜索树

    给定一个插入序列就可以唯一确定一棵二叉搜索树.然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到.例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果 ...

最新文章

  1. 学习JS面向对象成果,借国庆发布个最新作品与大家交流
  2. 端子排怎么生成_防雷接地图纸怎么看?
  3. vs2010文件加载使用简体中文(GB2312)问题解决方案
  4. Ksenia and Pan Scales(思维题)
  5. BelgiumTS交通数据集分类-pytorch版
  6. C语言什么时候必须用到二级指针?(需要调用函数为一维空指针确定值的情况下,需要传入二维指针,也就是那个一维指针的指针)
  7. 走进 San CLI(下):实现原理
  8. 1.1收集域名信息-完整介绍
  9. windows Perl环境安装与Hello World
  10. 管理全局包、缓存和临时文件夹
  11. 2021-02-03-延长一天时间的有效方法
  12. 【MySQL】MySQL常见的读写分离方法
  13. 关于wsgi协议的理解
  14. ITU-T E.800 有关服务质量(QoS)的术语定义
  15. pycharm显示中间变量
  16. 论文阅读|Pre-trained Models for Natural language Processing: A Survey
  17. 程序识别验证码图片(一)
  18. 怎么将pdf转换成word?
  19. php使用QQ登录API,QQ的账号登录及api操作
  20. 大数据挖掘永恒的定律?符号回归(Symbolic Regressor)

热门文章

  1. test.php.bak,MongoDB热备份工具:解决官方版备份缺陷
  2. Linux桌面需要强制访问控制,RHCSA 系列(十三): 在 RHEL 7 中使用 SELinux 进行强制访问控制...
  3. js unescape 对应php的函数,php实现Javascript的escape和unescape函数
  4. 《数据结构与算法分析》学习笔记(二)——算法分析
  5. JAVA自学笔记23
  6. 二分法的应用:POJ1064 Cable master
  7. 接口测试工具-fiddler的运用
  8. oc51--循环retain
  9. 常见的getchar 与EOF的问题
  10. 浅析调用android的content provider(一)