JIAKAOBO

LeetCode

venmo
wechat

感谢赞助!

  • ㊗️
  • 大家
  • offer
  • 多多!

Problem

You are given the root of a binary search tree (BST) and an integer val.

Find the node in the BST that the node’s value equals val and return the subtree rooted with that node. If such a node does not exist, return null.

Example 1:

img

Input: root = [4,2,7,1,3], val = 2
Output: [2,1,3]

Example 2:

img

Input: root = [4,2,7,1,3], val = 5
Output: []

Constraints:

  • The number of nodes in the tree is in the range [1, 5000].
  • $1 <= Node.val <= 10^7$
  • root is a binary search tree.
  • $1 <= val <= 10^7$

Code

class Solution {
    public TreeNode searchBST(TreeNode root, int val) {
        if(root == null) return null;

        if(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;
    }
}