98 validate binary search tree

vlidate BST 中序遍历是递增的,inorder比较当前和之前的节点,如果小于之前的节点就不是有效的

void inorder(struct TreeNode* root, bool * ret,struct TreeNode **prev)
{
    
    
        if((*ret)&&root){
            inorder(root->left, ret,prev);
            if(*prev && (root->val <= (*prev)->val))
                *ret = false;
            *prev = root;        
            inorder(root->right,ret,prev);
        }

}



bool isValidBST(struct TreeNode* root) {
    if(root == NULL)
        return true;
    bool ret = true;
    struct TreeNode *prev = NULL;
    inorder(root, &ret, &prev);

    return ret;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容