98. Validate Binary Search Tree 验证二叉搜索树

98. Validate Binary Search Tree 验证二叉搜索树

考察二叉树的中序遍历 time: O(logN) 平均树高度,最坏 O(N) space: O(logN) 栈空间和前继节点

bool isValidBST(TreeNode* root) {
    TreeNode* prev=NULL;
    return valid(root, prev);
}

bool valid(TreeNode* root, TreeNode*& prev) {
    if (root==NULL) return true;
	// 一直向左
    if (!valid(root->left, prev)) return false;
	// 中
    if (prev!=NULL && prev->val>=root->val) return false;
    prev=root;
	// 右
    return valid(root->right, prev);
}

#BST