700. Search in a Binary Search Tree

二叉搜索树。基础递归,有点像简单版的递归二分法。分成两种情况,node为空,或不为空。

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

循环写法会比较快。

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

注意不要这么写,因为计算if的时候会抛NullPointerException

if (cur.val == val) { return cur;}
if (cur.val < val) { cur = cur.right;}
if (cur.val > val) { cur = cur.left;}

results matching ""

    No results matching ""