leetcode-Validate Binary Search Tree
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.
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: bool isValidBST(TreeNode *root) { if(NULL==root) return true; TreeNode *p,*q; if(isValidBST(root->left)&&isValidBST(root->right)) { p = root->left; q = root->right; if(NULL!=p) while(p->right)p=p->right; if(NULL!=q) while(q->left)q=q->left; if(p&&p->val>=root->val)return false; if(q&&q->val<=root->val)return false; return true; } return false; } };
每天早上叫醒你的不是闹钟,而是心中的梦~