检查一棵树是否为合法的二叉搜索树 实现一个函数,检查一棵二叉树是否为二叉搜索树。
示例 1:
输入:
2
/
1 3
输出: true
示例 2:
输入:
5
/
1 4
/
3 6
输出: false
解释: 输入为: [5,1,4,null,null,3,6]。
根节点的值为 5 ,但是其右子节点值为 4 。
来源:力扣(LeetCode) 链接:leetcode-cn.com/problems/le… 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
const isValidBST = root => {
let preVal = -Infinity;
const inOrder = root => {
if (!root) return true;
const L = inOrder(root.left);
// 当前值小于等于上一个值,不递增,肯定不是二叉搜索树
if (root.val <= preVal) return false;
preVal = root.val;
const R = inOrder(root.right);
// 左右子树都要是二叉搜索树
return L && R;
};
return inOrder(root);
};