leetcode : twosum/BST

来源:互联网 发布:win10 查看80端口占用 编辑:程序博客网 时间:2024/06/10 05:51

题:判断二叉树中是否有满足x+y=target的整数对(x,y)


代码:

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */#include <unordered_map>#include <queue>using namespace std;class Solution {private:    queue<TreeNode*> Queue;    unordered_map<int,bool> M;public:    bool findTarget(TreeNode* root, int k) {  //递归广度优先遍历二叉树        int val=root->val;        int target=k-val;        if(M.count(val)==0){            M[target]=true;             if(root->left!=nullptr)Queue.push(root->left);            if(root->right!=nullptr)Queue.push(root->right);            if(!Queue.empty()){                return findTarget(Queue.front(),k);                Queue.pop();  //queue.pop()移除队列首项,但不返回其值            }            else return false;        }        else return true;    }};

原创粉丝点击