700. 二叉搜索树中的搜索

深度优先搜索

class Solution {
    public TreeNode searchBST(TreeNode root, int val) {

        if (root == null){
            return root;
        }
        
        if (root.val == val){
            return root;
        }
        else if (root.val > val){
            return searchBST(root.left, val);
        }
        else {
            return searchBST(root.right, val);
        }
    }
}

/**
 * 时间复杂度 O(n)
 * 空间复杂度 O(n)
 */

迭代

class Solution {
    public TreeNode searchBST(TreeNode root, int val) {

        while (root != null){

            if (root.val == val){
                return root;
            }
            else if (root.val > val){
                root = root.left;
            }
            else {
                root = root.right;
            }
        }

        return null;
    }
}

/**
 * 时间复杂度 O(n)
 * 空间复杂度 O(n)
 */

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

posted @ 2022-02-22 22:11  振袖秋枫问红叶  阅读(24)  评论(0)    收藏  举报