Question 41 of 75 - LeetCode Weekly Challenge
Day 92 of 100 Days LeetCode Challenge

LeetCode Challenge #700. Search in a Binary Search Tree

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:

tree1

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

Example 2:

tree2

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 <= 107
  • root is a binary search tree.
  • 1 <= val <= 107
C++ Video Solution
Java Video Solution
C++ Solution
				
					class Solution {
public:
    TreeNode* searchBST(TreeNode* root, int val) {

        if(!root)return NULL;

        if(root->val==val)return root;
        else if(root->val>val)return searchBST(root->left, val);
        else return searchBST(root->right, val);
    }
};
				
			
Java Solution
				
					class Solution {
    public TreeNode searchBST(TreeNode root, int val) {
        TreeNode temp = root ;

        while(temp!=null){
            if(temp.val == val){
                break;
            }else if (temp.val > val){
                temp = temp.left ;
            }else{
                temp = temp.right ;
            }
        }
        return temp ;
    }
}
				
			

Happy Coding with edSlash