当前位置: 代码迷 >> 综合 >> Leetcode 1214. 查找两棵二叉搜索树之和(DAY 179)---- 二分查找学习期
  详细解决方案

Leetcode 1214. 查找两棵二叉搜索树之和(DAY 179)---- 二分查找学习期

热度:46   发布时间:2023-11-17 17:15:21.0

文章目录

    • 原题题目
    • 代码实现(首刷自解)


原题题目


在这里插入图片描述


代码实现(首刷自解)


/*** 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:void visit(vector<int>& v1,TreeNode* root){
      if(!root)   return;visit(v1,root->left);v1.emplace_back(root->val);visit(v1,root->right);}bool twoSumBSTs(TreeNode* root1, TreeNode* root2, int target) {
    vector<int> v1,v2;visit(v1,root1);visit(v2,root2);int left = 0,pos = v2.size();while(left < v1.size()){
    auto iter = lower_bound(v2.begin(),v2.begin()+pos,target-v1[left]);++left;if(iter == v2.end())    continue;if(*iter == target-v1[left-1])    return true;pos = iter - v2.begin();}return false;}
};