LeetCode653. Two Sum IV

来源:互联网 发布:淘宝昵称在哪里显示 编辑:程序博客网 时间:2024/05/21 19:25

LeetCode653. Two Sum IV - Input is a BST

题目:

Given a Binary Search Tree and a target number, return true if there exist two elements in the BST such that their sum is equal to the given target.

Example 1:

Input:     5   / \  3   6 / \   \2   4   7Target = 9Output: True

Example 2:

Input:     5   / \  3   6 / \   \2   4   7Target = 28Output: False

题目分析:
直接采用dfs遍历,然后传递target进去,其实和two sum这道题是一个道题,只是这个是树的类型。

代码:
/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {    set<int> s;    bool dfs(TreeNode *cur, int k) {        if (!cur) return false;        if (s.count(k - cur->val)) return true;        s.insert(cur->val);        return dfs(cur->left, k) || dfs(cur->right, k);    }public:    bool findTarget(TreeNode* root, int k) {        s.clear();        return dfs(root, k);    }};



原创粉丝点击