Over a million developers have joined DZone.

Thursday Code Puzzler: Verification of a Binary Search Tree

DZone's Guide to

Thursday Code Puzzler: Verification of a Binary Search Tree

· Java Zone
Free Resource

The single app analytics solutions to take your web and mobile apps to the next level.  Try today!  Brought to you in partnership with CA Technologies

Thursday is code puzzler day here at DZone. The idea is simple: solve the coding problem as efficiently as you can, in any language or framework that you find suitable.

Note: Even though there really is nothing stopping you from finding a solution to this on the internet, try to keep honest, and come up with your own answer.  It's all about the participation!

Do you have code puzzlers that you'd like to share with the DZone community?  If so, please submit here. 

Verify if the tree is a binary search tree

Given a tree structure, provide a method that will verify whether or not it is actually a binary search tree. The Tree consists of a number of Node objects, each of which has a value and a reference to a right and left Node object.

Note that a BST is different to a standard binary tree because of the following properties : 

  • The leftsubtreeof 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 must also be binary search trees.
  • There must be no duplicate nodes.

For more on Binary Search Trees, check this article  on Wikipedia.

Catch up on all our previous puzzlers here.

CA App Experience Analytics, a whole new level of visibility. Learn more. Brought to you in partnership with CA Technologies.


Opinions expressed by DZone contributors are their own.


Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.


{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}