13. Search in BST

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:

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

Output : [2, 1, 3]

Explanation :

Example 2:

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

Output : []

Explanation :

Now Your Turn!

Pick the correct output for the given input

Input : root = [10, 2, 12, 1, 4, null, null, null, null, 3] , val = 2

Still unsure what the problem is asking ?

Let’s go through a few more examples, step by step, to make it clearer.

Constraints:

  • 1 <= Number of Nodes <= 5000
  • 1 <= Node.val <= 107
  • 1 <= val <= 107
  • All nodes values in BST are unique.

Hints

Frequently Occurring Doubts

Interview Follow-up Questions

Fun Facts

0
/**
* Definition for a binary tree node.
* class TreeNode {
* int data;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int val) : data(val) , left(nullptr) , right(nullptr) {}
* };
**/
 
class Solution {
public:
TreeNode* searchBST(TreeNode* root, int val) {
//your code goes here
}
};
Test Case

Input:

Root
Val