Thursday, April 25, 2013

Leetcode: Validate Binary Search Tree in C++



Given a binary tree, determine if it is a valid binary search tree (BST).
Assume a BST is defined as follows:

  • 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 must also be binary search trees.


   bool isBST(TreeNode* root,int& prev)
    {
      if(root)
 {
if(!isBST(root->left,prev))
return false;
if(root->val<=prev)
return false;
                prev = root->val;
return isBST(root->right,prev);
 }
 return true;
    }
    bool isValidBST(TreeNode *root) 
    {
        int prev =  INT_MIN;
        return isBST(root, prev);
    }

No comments:

Post a Comment