Bootstrap

力扣 LeetCode 700. 二叉搜索树中的搜索(Day9:二叉树)

解题思路:

二叉搜索树则利用其特性:自带顺序

方法一:递归

class Solution {
    public TreeNode searchBST(TreeNode root, int val) {
        if (root == null || root.val == val) return root;
        
        TreeNode node = null;
        if (root.val < val) node = searchBST(root.right, val);
        else if (root.val > val) node = searchBST(root.left, val);

        return node;
    }
}

方法二:迭代

因为二叉搜索树保障了顺序,本题用迭代法更简单

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

 

;