验证二叉搜索树
已关闭dadingPython / C++入场费 2 金币1 次提交
题目描述
给定一个二叉树的根节点 root,判断其是否是一个有效的二叉搜索树(BST)。有效的 BST 定义为:节点的左子树只包含小于当前节点的数;节点的右子树只包含大于当前节点的数;所有左子树和右子树自身必须也是二叉搜索树。输入以层序遍历的方式给出,空节点用 null 表示。
输入格式
第一行一个整数 n,表示层序遍历序列的长度。第二行 n 个值,表示二叉树的层序遍历(空节点用 null 表示,整数范围 -2^31 到 2^31-1)。
输出格式
输出 true 或 false,表示该树是否为有效的二叉搜索树。
输入输出样例
样例 1
输入:
7 2 1 3 null null null null
输出:
true
样例 2
输入:
7 5 1 4 null null 3 6
输出:
false
说明/提示
中序遍历 BST 得到的序列应当是严格递增的。注意边界条件:节点值可能等于 INT_MIN/INT_MAX,不能简单用开区间判断。