LeetCode 1214. 查找两棵二叉搜索树之和(二叉树迭代器+双指针)
文章目录
- 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. 查找两棵二叉搜索树之和(二叉树迭代器+双指针)相关推荐
- LeetCode 1305. 两棵二叉搜索树中的所有元素(二叉树迭代器)
1. 题目 给你 root1 和 root2 这两棵二叉搜索树. 请你返回一个列表,其中包含 两棵树 中的所有整数并按 升序 排序.. 提示: 每棵树最多有 5000 个节点. 每个节点的值在 [-1 ...
- 两棵二叉搜索树中的所有元素(2022-5-1)每日一练
1305. 两棵二叉搜索树中的所有元素(2022-5-1) 给你 root1 和 root2 这两棵二叉搜索树.请你返回一个列表,其中包含 两棵树 中的所有整数并按 升序 排序.. 示例请移步官网查看 ...
- pta 是否完全二叉搜索树_二叉树:构造一棵搜索树
给「代码随想录」一个星标吧! ❝ 构造二叉搜索树,一不小心就平衡了 ❞ 108.将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指 ...
- 7-4 是否同一棵二叉搜索树 (25 分)
是否同一棵二叉搜索树 1.题目描述: 给定一个插入序列就可以唯一确定一棵二叉搜索树.然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到.例如分别按照序列{2, 1, 3}和{2, 3, 1}插入 ...
- 5-4 是否同一棵二叉搜索树 (25分)
https://pta.patest.cn/pta/test/15/exam/4/question/712 这道题考察二叉搜索树的实现,并且还需要一定的逻辑与算法,所以题目还是挺好的. 5-4 是否同 ...
- 04-树4 是否同一棵二叉搜索树 (25 分)
给定一个插入序列就可以唯一确定一棵二叉搜索树.然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到.例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果 ...
- 是否同一棵二叉搜索树
给定一个插入序列就可以唯一确定一棵二叉搜索树.然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到.例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果 ...
- 7-1 是否同一棵二叉搜索树 (30分)
给定一个插入序列就可以唯一确定一棵二叉搜索树.然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到.例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果 ...
- 基础数据结构——是否同一棵二叉搜索树
给定一个插入序列就可以唯一确定一棵二叉搜索树.然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到.例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果 ...
最新文章
- 学习JS面向对象成果,借国庆发布个最新作品与大家交流
- 端子排怎么生成_防雷接地图纸怎么看?
- vs2010文件加载使用简体中文(GB2312)问题解决方案
- Ksenia and Pan Scales(思维题)
- BelgiumTS交通数据集分类-pytorch版
- C语言什么时候必须用到二级指针?(需要调用函数为一维空指针确定值的情况下,需要传入二维指针,也就是那个一维指针的指针)
- 走进 San CLI(下):实现原理
- 1.1收集域名信息-完整介绍
- windows Perl环境安装与Hello World
- 管理全局包、缓存和临时文件夹
- 2021-02-03-延长一天时间的有效方法
- 【MySQL】MySQL常见的读写分离方法
- 关于wsgi协议的理解
- ITU-T E.800 有关服务质量(QoS)的术语定义
- pycharm显示中间变量
- 论文阅读|Pre-trained Models for Natural language Processing: A Survey
- 程序识别验证码图片(一)
- 怎么将pdf转换成word?
- php使用QQ登录API,QQ的账号登录及api操作
- 大数据挖掘永恒的定律?符号回归(Symbolic Regressor)
热门文章
- test.php.bak,MongoDB热备份工具:解决官方版备份缺陷
- Linux桌面需要强制访问控制,RHCSA 系列(十三): 在 RHEL 7 中使用 SELinux 进行强制访问控制...
- js unescape 对应php的函数,php实现Javascript的escape和unescape函数
- 《数据结构与算法分析》学习笔记(二)——算法分析
- JAVA自学笔记23
- 二分法的应用:POJ1064 Cable master
- 接口测试工具-fiddler的运用
- oc51--循环retain
- 常见的getchar 与EOF的问题
- 浅析调用android的content provider(一)