Search⌘ K
AI Features

Validate Binary Search Tree

Explore how to determine if a binary tree is a valid binary search tree by applying depth-first search methods. Learn to verify BST properties by ensuring left subtree nodes are less and right subtree nodes are greater than parent nodes. This lesson guides you to develop clear and efficient solutions in Go.

Statement

Given the root of a binary tree, check whether it is a valid binary search tree (BST).

A binary tree is a valid BST if for every node:

  • The left subtree of a node contains only nodes with keys less than the node’s key.

  • The right subtree of a node contains only nodes with keys greater than the node’s key.

  • Both the left and right subtrees are valid BSTs.

Constraints:

  • 104-10^{4} \leq Node.Data 104\leq 10^{4}

  • The tree contains nodes in the range [1,500][1, 500].

Examples

Understand the problem

Let’s take a moment to make sure you’ve correctly understood the problem. The quiz below helps you check if you’re solving the correct problem:

Valid Binary Search Tree

1.

Is the following binary tree a valid binary search tree?

  9
 / \
2  10
   / \
  7  20
A.

True

B.

False


1 / 3

Figure it out!

We have a game for you to play. Rearrange the logical building blocks to develop a clearer understanding of how to solve this problem.

Sequence - Vertical
Drag and drop the cards to rearrange them in the correct sequence.

1
2
3
4
5
6

Try it yourself

Implement your solution in the following coding playground.

Go
usercode > main.go
// Definition of a binary tree node
// type TreeNode[T any] struct {
// Data T
// Left *TreeNode[T]
// Right *TreeNode[T]
// }
package main
import (. "golang-test-code/ds_v1/BinaryTree") // TreeNode[T]
func validateBst(root *TreeNode[int]) bool {
// Replace this placeholder return statement with your code
return false;
}
Validate Binary Search Tree