验证二叉搜索树(BST) Leetcode98题(巨简洁)

long pre = LONG_MIN;
bool isValidBST(struct TreeNode* root){
    if(!root)return true;

    if(!(isValidBST(root->left))) return false;
    if(root->val <= pre)return false;

    pre = root->val;
    
    return isValidBST(root->right);
}

 

 变量pre 用Long是因为root的值可能是INT_MIN,用INT的话会判断失败 (血的教训 = =!)

 另外,pre要用全局变量,否则的话

isValidBST(root->right)
会读不进去上一个pre,右子树的左子树如果小于上一个节点的话就会直接被跳过。

上一篇:数据结构-二叉树-应用-BST&AVL&RBT


下一篇:刷题日记Day5 | BST(增删改查)