Amazon Interview Question

Given any binary tree, write an method to test whether it is a Binary Search Tree

Interview Answer

Anonymous

Oct 3, 2013

bool isBinarySearchTree(Node* currNode) { // // treat a NULL as an exception, // since you can't tell if an empty tree is a BST // if(!currNode) { throw MyException("got NULL"); } bool isBST = true; // // check left, should be le (or null) // if(isBST && currNode->left) { if(currNode->left->value value) { isBST = isBinarySearchTree(currNode->left); } else { isBST = false; } } // // check right, should be gt // if(isBST && currNode->right) { if(currNode->right->value > currNode->value) { isBST = isBinarySearchTree(currNode->right); } else { isBST = false; } } return isBST; }

1