网站需要在哪些方面备案,百度云建网站,自动与手动控制电路图,自己做的网站怎样对接支付宝文章目录1. 题目2. 解题1. 题目
给定一个二叉搜索树和一个目标结果#xff0c;如果 BST 中存在两个元素且它们的和等于给定的目标结果#xff0c;则返回 true。
案例 1:
输入: 5/ \3 6/ \ \
2 4 7Target 9
输出: True案例 2:
输入: 5/ \3 6/ \ \
2 4 7Tar…
文章目录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;stackTreeNode* 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-valj-val k)j prev();//和大了j减小else if(i-valj-val k)i next();//和小了i增大else//if(i-valj-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;}
};