c_cpp 700.在二进制搜索树中搜索

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 700.在二进制搜索树中搜索相关的知识,希望对你有一定的参考价值。

// 执行用时: 32 ms, 在Search in a Binary Search Tree的C++提交中击败了64.98% 的用户

class Solution {
public:
    vector<pair<int,TreeNode*>> array;
    
    TreeNode* searchBST(TreeNode* root, int val) {
        if(root == nullptr) return NULL;
        travelTree(root);
        for(int i = 0;i < array.size();++i){
            if(array[i].first == val)
                return array[i].second;
        }
        return NULL;
    }
    
    void travelTree(TreeNode* root){
        if(root){
            array.push_back(make_pair(root->val,root));
            travelTree(root->left);
            travelTree(root->right);
        }
    }
};
// 36 ms

TreeNode* searchBST(TreeNode* root, int val) {
    while (root != nullptr && root->val != val) {
      root = (root->val > val) ? root->left : root->right;
    }
    return root;
}

以上是关于c_cpp 700.在二进制搜索树中搜索的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode Algorithm 700. 二叉搜索树中的搜索

leetcode 700. 二叉搜索树中的搜索

LeetCode-700. 二叉搜索树中的搜索

Leetcode刷题100天—700. 二叉搜索树中的搜索( 二叉树)—day34

Leetcode刷题100天—700. 二叉搜索树中的搜索( 二叉树)—day34

LeetCode 700.二叉树中的搜索