Files
leetcode-master/problems/0700.二叉搜索树中的搜索.md
youngyangyang04 6c478deaa8 Update
2020-08-01 16:49:18 +08:00

1.0 KiB
Raw Blame History

题目地址

https://leetcode-cn.com/problems/search-in-a-binary-search-tree/

思路

注意这里是二叉搜索树,是已经排序的了,两种实现,递归和迭代

C++代码

递归

class Solution {
public:
    TreeNode* searchBST(TreeNode* root, int val) {
        if (root == NULL || root->val == val) return root;
        if (root->val > val) return searchBST(root->left, val);
        if (root->val < val) return searchBST(root->right, val);
        return NULL;
    }
};

迭代

class Solution {
public:
    TreeNode* searchBST(TreeNode* root, int val) {
        while (root != NULL) {
            if (root->val > val) root = root->left;
            else if (root->val < val) root = root->right;
            else return root;
        }
        return NULL;
    }
};

更多算法干货文章持续更新可以微信搜索「代码随想录」第一时间围观关注后回复「Java」「C++」 「python」「简历模板」「数据结构与算法」等等就可以获得我多年整理的学习资料。