LeetCode 98. 验证二叉搜索树
题目链接:
给定一个二叉树,判断其是否是一个有效的二叉搜索树。
假设一个二叉搜索树具有如下特征:
节点的左子树只包含小于当前节点的数。
节点的右子树只包含大于当前节点的数。
所有左子树和右子树自身必须也是二叉搜索树。
思路:中序递归遍历二叉树。。。
1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; 9 */ 10 class Solution { 11 public: 12 long minnum=LONG_MIN; 13 bool flag=true; 14 bool isValidBST(TreeNode* root) { 15 if(root==NULL) return true; 16 if(flag&&root->left) isValidBST(root->left); 17 if(root->val<=minnum) flag=false; 18 minnum=root->val; 19 if(flag&&root->right) isValidBST(root->right); 20 return flag; 21 } 22 };