请问巨巨们leetcode653这样写为什么不可以呢。一直是错的

给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。
案例 1:
输入:
5
/ \
3 6
/ \ \
2 4 7

Target = 9

输出: True

案例 2:
输入:
5
/ \
3 6
/ \ \
2 4 7

Target = 28

输出: False

/**

  • 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 {
    public:

    vector search(TreeNode *root,vector a)
    {

    if(root)
    {
        search(root->left,a);
        a.push_back(root->val);
        search(root->right,a);
    }
    return a;
    

    }
    bool findTarget(TreeNode* root, int k) {

    if(!root)
        return false;
    
    vector<int> a ;
    
    a = search(root,a);
    

    for(int i = 0;i<a.size()-1;i++)
    {
    for(int j = i+1;j<a.size();j++)
    {
    if(a[i]+a[j]==k)
    return true;
    }
    }

    return false;
    

    }
    };


查看全部
gaotianyu824
Marval-C
2018/10/21 13:23
  • leetcode
  • 搜索
  • 点赞
  • 收藏
  • 回答
    私信

1个回复